Plus récemment, j'ai eu un cas d'utilisation similaire où je souhaitais extraire sélectivement du contenu d'un gros fichier zip dans le cloud, et j'ai trouvé une autre technique qui se résume à :
- Monter le fichier zip distant dans le système de fichiers (la technique peut varier en fonction des caractéristiques du fichier distant). Important - cette technique de montage doit permettre un accès aléatoire au fichier distant (recherche).
- Se fier aux outils zip standard (comme unzip) pour analyser le fichier et effectuer des opérations (y compris l'extraction des fichiers au fur et à mesure de leur arrivée via le tube).
Cette approche nécessite toujours des modifications du système de fichiers local (création d'un montage), mais pourrait être utilisée pour décompresser des fichiers alors qu'ils sont diffusés sur le réseau.
En théorie, il devrait être possible de mettre en œuvre quelque chose de similaire en utilisant des requêtes de plage HTTP pour effectuer des opérations de décompression incrémentielles ou sélectives sur un fichier zip hébergé en HTTP.
0 votes
Cela semblait réalisable, mais il semble que ce soit seulement possible d'extraire un fichier zip et de le transmettre à une autre commande si le zip contient un seul fichier. Je voulais extraire un fichier spécifique d'un zip multi-fichier. Au lieu de transmettre, j'ai opté pour l'enchaînement de plusieurs commandes 'unzip file.zip /chemin/fichier && dostuff /chemin/fichier && rm -rf /chemin'. Bien que cela ne réponde pas à la question initiale et implique la création de fichiers temporaires, cela a satisfait mon besoin.
0 votes
Vérifiez pigz. Nous l'utilisons dans un tuyau. andrew.tumblr.com/post/2316602611