Comment compresser et décompresser des fichiers dans Node.js

L’archivage de fichiers est une activité quotidienne dans le monde moderne, car tout le monde peut attester des avantages offerts par la compression de fichiers ou de dossiers dans des formats plus petits et portables.

Le format ZIP est l’un des formats d’archive les plus populaires utilisés dans le monde de l’informatique, et c’est un choix hautement recommandé pour tous ceux qui ont besoin de convertir des fichiers bruts en archives pour un meilleur stockage, un transfert efficace, ou toute autre raison.

Alors, pourquoi devriez-vous envisager de compresser vos fichiers, et comment pouvez-vous compresser des fichiers au format ZIP et les extraire pour les ramener à leur état d’origine de manière programmatique à l’aide de Node.js ?

Pourquoi compresser les fichiers ?

Souvent, les fichiers et les dossiers deviennent très volumineux, et leur partage ou leur transfert devient un problème parce qu’ils sont soit trop volumineux pour être stockés sur un disque de stockage d’une capacité spécifique, soit trop longs à télécharger vers un stockage en nuage.

Dans de tels scénarios, et bien d’autres encore, vous devriez compresser ces fichiers ou dossiers pour les réduire à une taille beaucoup plus petite. Outre la facilité de transfert des fichiers, d’autres raisons peuvent vous inciter à compresser vos fichiers :

  • Stockage efficace
  • Meilleure structure et organisation des fichiers
  • Sécurité (cryptage des fichiers et protection par mot de passe)
  • Intégrité des fichiers
  • Versionnement des fichiers

Que sont les paquets Node.js Archiver et Unzipper ?

L’archiveur et le décompresseur de Node js Archiver décrit dans sa documentation officielle comme « une interface de flux pour la génération d’archives ». Cela signifie que le paquet Archiver fournit une bibliothèque de fonctions qui exploitent les flux Node.js pour créer des archives de fichiers compressés.

Le paquet Archiver prend en charge plusieurs formats d’archives par défaut, notamment ZIP, GZIP et TAR. Il vous permet également de créer des archives à partir de fichiers et de répertoires, et de diviser des archives volumineuses en parties plus petites (archives multi-volumes). Il vous permet également d’exclure ou de filtrer des fichiers pendant la compression.

Les Unzipper est un paquetage très efficace pour l’extraction d’archives ZIP dans Node.js. Il fournit une API facile à utiliser qui permet aux développeurs d’extraire des fichiers ZIP avec seulement quelques lignes de code.

Voir aussi :  Comment construire le jeu des tuiles de mémoire en utilisant Python

Les paquets Archiver et Unzipper ont été choisis pour ce tutoriel parce qu’ils s’intègrent de manière transparente à l’environnement Node.js fs de Node.js, ce qui garantit une compatibilité et une simplicité optimales.

Comment compresser des fichiers au format ZIP dans Node.js

La compression de fichiers au format ZIP dans Node.js est facile comme dans n’importe quel autre langage, grâce au paquet Archiver. Pour créer des archives ZIP dans Node.js tout en suivant cette section, vous devez disposer d’un environnement de développement Node.js configuré sur votre ordinateur.

Vous allez créer un script Node.js simple pour compresser un fichier et un dossier au format ZIP. Créez un nouveau projet Node sur votre ordinateur en exécutant les commandes suivantes :

Ensuite, vous devez installer le paquet Archiver dans votre projet. Exécutez npm install archiver –save dans votre terminal pour l’installer. Lorsque l’installation du paquet est terminée, créez un nouveau fichier dans le répertoire du projet et nommez-le selon vos préférences, par exemple app.js ou archiver.js.

Les fs gère les opérations sur les fichiers, tandis que le paquet Archiver s’occupe de la compression des fichiers et des dossiers dans des archives ZIP ; le script nécessite donc les deux modules.

Création d’archives ZIP à partir de fichiers

Le code suivant est la mise en œuvre d’une fonction qui accepte un fichier comme argument et crée une version ZIP compressée du fichier.

La fonction prend le nom du fichier à compresser et génère un fichier de sortie portant un nom similaire (la seule distinction étant l’ajout de l’extension de fichier ZIP).

Ensuite, la fonction génère une nouvelle archive dont le niveau de compression est fixé à 9 (le plus élevé) et utilise la fonction pipe pour transférer les flux de sortie de l’archive dans l’entrée du fichier de sortie.

La fonction fichier ajoute un fichier à l’archive. Elle accepte le chemin d’accès au fichier en tant que paramètre et un paramètre optionnel options où vous pouvez spécifier les propriétés du fichier dans l’archive.

Le paramètre options permet de spécifier les propriétés du fichier dans l’archive. nom désigne le nom du fichier dans l’archive. Si l’option n’est pas spécifiée lors de l’ajout d’un fichier à l’archive, Archiver place le fichier dans l’archive en fonction de son chemin d’origine, en préservant la structure des répertoires.

Voir aussi :  Créer un solveur de Sudoku en Python

Cependant, lorsqu’elle est explicitement fournie, Archiver ajoute le fichier à l’archive sans son chemin d’origine, ce qui permet de personnaliser le nommage et l’organisation au sein de l’archive.

Création d’archives ZIP à partir de dossiers

Le processus de création d’archives ZIP à partir de dossiers n’est pas très différent de celui des fichiers. La principale différence réside dans l’utilisation de la fonction du paquet Archiver du paquetage Archiver, plutôt que la fonction fichier dans la fonction précédente.

Voici la mise en œuvre d’une fonction permettant de compresser un dossier en une archive ZIP.

La fonction répertoire prend le chemin du dossier comme premier argument et un indicateur comme second argument. L’indicateur détermine l’emplacement du dossier dans l’archive.

Lorsque l’indicateur est fixé à faux l’archive résultante ne contiendra que le contenu du dossier, à l’exclusion du dossier lui-même. Mais si l’indicateur est fixé à vrai Archiver inclura le dossier lui-même dans l’archive générée.

Si vous voulez éviter de contaminer l’endroit où vous extrayez votre archive avec des fichiers de l’archive compressée, vous devriez penser à configurer l’option flag à vrai. Toutefois, vous pouvez lui attribuer la valeur faux si cela vous convient mieux.

Comment décompresser des fichiers dans Node.js

Le processus d’extraction des fichiers ZIP dans Node.js a plusieurs approches et plusieurs bibliothèques sont disponibles pour l’utilisation, mais dans cet article, le paquet Unzipper est utilisé.

Exécutez la commande suivante dans votre terminal pour installer le package Unzipper dans votre projet.

Après avoir installé le package, importez-le dans votre code et mettez en œuvre la fonction d’extraction ZIP présentée dans le code ci-dessous :

Les extractZip est une fonction asynchrone qui crée un flux de lecture pour lire le contenu du fichier ZIP, et extrait le fichier vers le chemin de sortie spécifié (elle crée le fichier extrait s’il n’existe pas).

Dans le cas de la décompression ou de l’extraction, il n’est pas nécessaire de définir des fonctions différentes pour les fichiers et les dossiers, car une archive ZIP est un fichier indépendamment de son contenu.

Voir aussi :  Comment utiliser les écouteurs d'événement en JavaScript

Vous trouverez ci-dessous une fonction que vous pouvez ajouter à l’application, afin de tester les fonctions que vous avez créées jusqu’à présent :

Toutes les fonctions précédentes sont des fonctions fléchées JavaScript, mais la fonction ci-dessus est différente car il s’agit d’une fonction Expression de fonction invoquée immédiatement qui encapsule le code qu’elle contient et l’exécute immédiatement.

La compression des fichiers est bénéfique pour la création d’applications efficaces

L’objectif devrait toujours être de rendre vos applications aussi efficaces que possible afin de mieux servir les utilisateurs et de maintenir une expérience utilisateur agréable.

Dans les scénarios où vous devez transférer un grand nombre de fichiers au sein de votre application, envisagez de compresser et de décompresser les fichiers lors de la transmission. La plupart des langages de programmation modernes permettent de compresser et de décompresser efficacement les fichiers.

Comment compresser un fichier dans node js ?

Comment compresser un fichier avec le module Zlib dans Node Js ?

  • Étape 1 : Créer un dossier vierge.
  • Étape 2 : Générer le Json du paquetage.
  • Étape 3 : Configuration du fichier principal de l’application.
  • Étape 4 : Construction de la compression des fichiers.
  • Étape 5 : Test de la fonctionnalité.

Comment télécharger un fichier zip en utilisant node js ?

Ouvrez le terminal à l’endroit désiré et assurez-vous que vous avez téléchargé le paquet adm-zip à l’aide de la commande suivante. Exécutez le fichier app. js à l’aide de la commande suivante. Ouvrez le navigateur et ouvrez localhost:7777 et alors le dossier upload_data est converti en fichier zip et est téléchargé !

Comment décompresser en utilisant zlib ?

La méthode zlib. unzip() est une interface de programmation d’application intégrée du module Zlib qui est utilisée pour décompresser un morceau de données. Paramètres : Cette méthode accepte trois paramètres mentionnés ci-dessus et décrits ci-dessous : buffer : Il peut être de type Buffer, TypedArray, DataView, ArrayBuffer et string.

  • 00:09Modules requis
  • 01:42Définition des variables
  • 02:36Comment vérifier si un fichier est déjà compressé
  • 03:30Créer les fonctions
  • 04:16Qu’est-ce que pipe en NodeJs ?
  • 05:47Décompression du fichier
Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *