Tous les produits
Search
Centre de documentation

Object Storage Service:Décompression de packages ZIP

Dernière mise à jour :Aug 18, 2026

Configurez des règles de décompression pour extraire automatiquement les packages ZIP téléchargés vers un répertoire OSS spécifié. Function Compute décompresse les packages et enregistre les objets extraits dans le répertoire de destination.

Prérequis

Function Compute est activé. Pour l'activer, accédez à la page Function Compute.

Scénarios

  • Téléchargement par lot : compressez de nombreux petits objets dans un seul package ZIP pour réduire le temps de téléchargement.

  • Intégrité des ressources : regroupez les fichiers connexes dans un seul package ZIP afin de garantir que tous les composants sont téléchargés ensemble.

  • Préservation de la structure des répertoires : empaquetez une arborescence de répertoires locale dans un fichier ZIP et téléchargez-le vers OSS. La règle de décompression recrée la structure de dossiers d'origine dans le bucket.

  • Distribution de contenu : compressez les objets dans un package ZIP et téléchargez-le vers OSS. Le package est décompressé vers des répertoires spécifiés, ce qui réduit le temps de transmission et l'utilisation de la bande passante.

Fonctionnement

OSS utilise Function Compute pour décompresser les packages ZIP téléchargés. Le schéma suivant illustre le processus.

image
  1. Un package ZIP est téléchargé vers le répertoire spécifié par le paramètre Prefix dans une règle de décompression.

  2. Le déclencheur Function Compute est invoqué.

    Lorsque vous configurez une règle de décompression, autorisez le déclencheur afin qu'OSS puisse utiliser le rôle AliyunOSSEventNotificationRole pour accéder à Function Compute.

  3. Function Compute décompresse le package ZIP et enregistre les objets extraits dans le répertoire OSS spécifié.

    Lorsque vous configurez une règle de décompression, autorisez Function Compute à lire et à écrire dans le bucket OSS.

Facturation

La décompression de packages ZIP entraîne des frais à la fois pour OSS et pour Function Compute. Les transferts de données entre OSS et Function Compute via des endpoints internes sont gratuits.

  • Côté OSS, vous êtes facturé pour les appels d'API et le stockage d'objets. Pour plus d'informations, consultez la rubrique Présentation de la facturation.

  • Côté Function Compute, vous êtes facturé pour l'utilisation du vCPU, de la mémoire et du disque en fonction de la durée d'exécution. Pour plus d'informations, consultez la rubrique Présentation de la facturation.

    Par exemple, si une tâche de décompression de package ZIP utilise une instance Function Compute disposant de 3 Go de mémoire et d'un vCPU à 2 cœurs, prend 5 minutes pour terminer la décompression et que la taille par défaut du disque alloué pour les fichiers de stockage créés temporairement est de 10 Go, le montant des frais facturés par Function Compute est calculé selon la formule suivante :

Élément d'utilisation des ressources

Unité

Formule

Exemple de facturation

Utilisation du vCPU

**vCPU-seconds**

Utilisation active du vCPU = capacité du vCPU × durée d'exécution (secondes)

Si la fonction est configurée avec 2 vCPU et s'exécute pendant 300 secondes, l'utilisation du vCPU pour une seule exécution est calculée à l'aide de la formule suivante : 2 × 300 = 600 **vCPU-seconds**.

Utilisation de la mémoire

GB-seconds

Utilisation de la mémoire = capacité de la mémoire (Go) × durée d'exécution (secondes)

Si la fonction est configurée avec une taille de mémoire de 3 Go et s'exécute pendant 300 secondes, l'utilisation de la mémoire pour une seule exécution est calculée à l'aide de la formule suivante : 3 × 300 = 900 GB-seconds

Utilisation du disque

GB-seconds

Utilisation du disque = capacité du disque (Go) × durée d'exécution (secondes)

Remarque : l'utilisation du disque jusqu'à 512 Mo est gratuite.

Si la fonction est configurée avec une taille de disque temporaire de 10 Go et s'exécute pendant 300 secondes, l'utilisation du disque pour une seule exécution est calculée à l'aide de la formule suivante : (10 - 512/1024) × 300 = 2850 GB-seconds.

Limites

  • Classes de stockage : un objet Cold Archive doit être restauré avant de pouvoir être décompressé. Un objet Archive dans un bucket pour lequel l'accès en temps réel aux objets Archive n'est pas activé doit également être restauré avant sa décompression.

  • Nomination des objets et des répertoires : encodez les noms d'objets et de répertoires en UTF-8 ou GB 2312. D'autres encodages peuvent entraîner des échecs de décompression ou des noms illisibles.

  • Taille des objets et durée de décompression : chaque objet dans un package ZIP ne peut pas dépasser 1 Go. Vous pouvez augmenter la durée de décompression si nécessaire. Pour plus d'informations, consultez la rubrique Que faire si la décompression d'un package ZIP échoue en raison d'un délai d'attente ?

Configurer une règle de décompression de package ZIP

  1. Connectez-vous à la console OSS.

  2. Dans le volet de navigation de gauche, cliquez sur Buckets. Sur la page qui s'affiche, cliquez sur le nom du bucket cible.

  3. Dans l'arborescence de navigation de gauche, choisissez Data Processing > Decompress ZIP Package.

  4. Cliquez sur Decompress ZIP Package. Dans le panneau Decompress ZIP Package, configurez les paramètres décrits dans le tableau suivant.

    Paramètres

    Paramètre

    Obligatoire

    Description

    Service Authorization

    Oui

    Autorisez Function Compute à lire et à écrire dans OSS et à exécuter des fonctions.

    Cliquez sur Authorize. Effectuez l'autorisation sur la page qui s'affiche.

    Authorize Trigger

    Oui

    Autorisez OSS à accéder à Function Compute.

    Cliquez sur Authorize. Effectuez l'autorisation sur la page qui s'affiche. Si OSS est autorisé à accéder à Function Compute, le paramètre Trigger Role s'affiche à la place du paramètre Autoriser le déclencheur.

    Prefix

    Non

    Le préfixe que les noms de packages ZIP doivent correspondre pour déclencher la décompression. Si vous téléchargez un package ZIP dont le nom contient ce préfixe ou si vous le téléchargez dans le répertoire spécifié par le préfixe, Function Compute le décompresse. Si non spécifié, tous les packages ZIP téléchargés dans le bucket sont décompressés.

    Important

    Si vous ne spécifiez pas ce paramètre, les tâches de décompression peuvent être exécutées de manière répétée. Par conséquent, nous vous recommandons de spécifier un préfixe pour chaque règle de décompression. Pour plus d'informations, consultez la rubrique Comment éviter les boucles de déclenchement ?

    Destination Directory

    Non

    Le répertoire où les objets extraits sont stockés. Si non spécifié, les objets sont décompressés dans le répertoire racine du bucket.

    • Pour stocker les objets extraits dans un sous-répertoire portant le nom du package ZIP, sélectionnez Add the compressed object name to the destination directory.

    • Pour stocker les objets extraits directement dans le répertoire de destination sans sous-répertoire, sélectionnez Decompress to the destination directory. Le tableau suivant présente des exemples de configuration.

    Avertissement

    Pour éviter toute interruption de service, contamination des données ou perte de données lors de la configuration des règles de décompression de packages ZIP sur un bucket avec OSS-HDFS activé, ne définissez pas le Destination Directory sur.dlsdata/.

    Exemples de configuration de décompression

    Scénario

    Méthode de configuration

    Structure de stockage après décompression

    Décompressez tous les packages ZIP téléchargés dans le répertoire zipfolder vers le répertoire destfolder, sans créer de sous-répertoires portant les mêmes noms que les packages ZIP.

    • Définissez Prefix sur zipfolder/.

    • Définissez Destination Directory sur destfolder.

    • Sélectionnez Decompress to the destination directory.

    bucket  ├─── zipfolder/   │    ├─── a.zip│    └─── b.zip└─── destfolder/     ├─── a.txt     ├─── b.txt     └─── ... 

    Décompressez tous les packages ZIP téléchargés dans le répertoire zipfolder vers les sous-répertoires portant les mêmes noms que les packages dans le répertoire racine du bucket.

    Configurez les paramètres suivants :

    • Définissez Prefix sur zipfolder/.

    • Laissez Destination Directory vide.

    • Sélectionnez Add the compressed object name to the destination directory.

    bucket  ├─── zipfolder/   │    ├─── a.zip│    └─── b.zip├─── a/│    ├─── a.txt│    └─── ...└─── b/     ├─── b.txt     └─── ...

    Décompressez tous les packages ZIP téléchargés dans le répertoire zipfolder vers les sous-répertoires portant les mêmes noms que les packages dans le répertoire destfolder.

    Configurez les paramètres suivants :

    • Définissez Prefix sur zipfolder/.

    • Définissez Destination Directory sur destfolder.

    • Sélectionnez Add the compressed object name to the destination directory.

    bucket  ├─── zipfolder/   │    ├─── a.zip│    └─── b.zip└─── destfolder/     ├─── a/     │    ├─── a.txt     │    └─── ...     └─── b/          ├─── b.txt          └─── ...
  5. Sélectionnez I have read the terms of service and agreed to activate Function Compute and process compressed files by using Function Compute. Only file or folder names encoded in UTF-8 or GB 2312 can be processed. et cliquez sur OK.

Modifier une règle de décompression de package ZIP

Modifiez une règle de décompression pour mettre à jour le préfixe du déclencheur ou les configurations de la fonction.

Modifier le paramètre Prefix

  1. Sur la page Decompress ZIP Package de la console OSS, recherchez le déclencheur que vous souhaitez modifier et cliquez sur Edit dans la colonne Actions.

  2. Sur l'onglet Triggers de la page de détails de la fonction, recherchez le déclencheur et cliquez sur Modify dans la colonne Actions.

  3. Dans le panneau Modify Trigger, modifiez le paramètre Object Prefix et conservez les paramètres par défaut pour les autres options.

  4. Cliquez sur OK.

Modifier les configurations de la fonction

  1. Sur l'onglet Configurations de la page de détails de la fonction, cliquez sur Modify dans la section Basic Settings ou Environment Information.

  2. Modifiez les configurations de la fonction, telles que Memory et Execution Timeout Period.

    Pour plus d'informations, consultez la rubrique Gérer les fonctions.

Supprimer un déclencheur

Remarque

Les déclencheurs supprimés ne peuvent pas être restaurés. La suppression d'un déclencheur n'interrompt pas les tâches de décompression en cours.

  1. Sur l'onglet Triggers de la page de détails de la fonction, recherchez le déclencheur que vous souhaitez supprimer et cliquez sur Delete dans la colonne Actions.

  2. Dans le message qui s'affiche, cliquez sur Delete.

Référence

Empaqueter et télécharger des objets sous forme de fichier ZIP

FAQ

Que faire si le téléchargement d'un package ZIP ne parvient pas à déclencher une tâche de décompression Function Compute ?

Vérifiez l'en-tête de réponse x-oss-event-status encodé en Base64. Si la valeur décodée de x-oss-event-status est {"Result": "Ok"}, la décompression a été déclenchée. Si la valeur décodée de x-oss-event-status n'est pas {"Result": "Ok"}, retéléchargez le package ZIP. Pour plus d'informations, consultez la rubrique Téléchargement simple.

Remarque

Chaque objet dans un package ZIP ne peut pas dépasser 1 Go. La durée maximale de décompression par défaut est de 2 heures.

Que faire si la décompression d'un package ZIP échoue en raison d'un délai d'attente ?

La durée maximale de décompression par défaut est de 2 heures, qui peut être augmentée jusqu'à 24 heures. Pour modifier la durée :

  1. Sur la page Decompress ZIP Package de la console OSS, recherchez le déclencheur que vous souhaitez modifier et cliquez sur Edit dans la colonne Actions.

  2. Sur la page de détails de la fonction, cliquez sur l'onglet Configurations.

  3. Cliquez sur Modify à côté de Environment Information.

  4. Modifiez la valeur du champ Execution Timeout Period et cliquez sur OK.

Comment décompresser un package contenant un objet de plus de 1 Go ?

Si un objet dans un package ZIP dépasse 1 Go, stockez le package dans File Storage NAS et décompressez-le à cet emplacement. Cela engendre des frais de stockage NAS. Consultez le dépôt GitHub unzip-oss-nas.

Function Compute décompresse-t-il un package ZIP situé à l'intérieur d'un autre package ZIP ?

Non. Function Compute décompresse le package ZIP une seule fois.

Si le package ZIP contient des packages ZIP imbriqués, les packages internes ne sont pas décompressés. Téléchargez-les séparément pour déclencher une autre tâche de décompression.

La décompression de packages ZIP permet-elle de décompresser les données vers un autre bucket ?

Non. La décompression est limitée aux répertoires au sein du même bucket. Pour décompresser vers un autre bucket, implémentez une fonction personnalisée dans Function Compute.

Les objets extraits lors de la décompression d'un package ZIP apparaissent-ils simultanément dans le répertoire de destination ?

Oui. Function Compute télécharge les objets extraits vers le répertoire de destination tout en continuant à décompresser les données restantes.

Function Compute télécharge les objets décompressés d'un package ZIP vers OSS pendant qu'il décompresse les données restantes du package.

Comment vérifier si une tâche de décompression est terminée ?

Consultez les journaux d'appel de fonction pour vérifier l'état de la décompression.

  1. Sur la page Decompress ZIP Package de la console OSS, recherchez le déclencheur et cliquez sur Edit dans la colonne Actions.

  2. Sur la page de détails de la fonction, cliquez sur l'onglet Logs.

  3. Cliquez sur Enable.

  4. Attachez la stratégie AliyunLogFullAccess au rôle RAM. Pour plus d'informations, consultez la rubrique Gérer les autorisations pour un rôle RAM.

  5. Si une tâche de décompression est déclenchée lors du téléchargement d'un package ZIP, consultez les informations de journal sur l'onglet Logs pour vérifier si la décompression est terminée.

    Si le journal contient « FC Invoke End », la tâche de décompression est terminée.

    image.png

La décompression de packages ZIP prend-elle en charge les fichiers .rar et .tar.gz ?

Non. Seuls les fichiers .zip sont pris en charge.

La décompression de packages ZIP prend uniquement en charge les fichiers ZIP.

Une notification est-elle envoyée après la fin de la décompression ?

Non.

Consultez l'onglet Logs de la page de détails de la fonction, ou configurez une destination d'appel asynchrone. Pour plus d'informations, consultez la rubrique Destinations pour les appels asynchrones.

OSS prend-il en charge la compression en ligne ?

Non, OSS ne prend pas en charge la compression en ligne.

Utilisez Function Compute pour empaqueter et télécharger des objets. Utiliser Function Compute pour empaqueter et télécharger des objets OSS.

Puis-je utiliser la décompression de packages ZIP pour décompresser des packages ZIP multiparties ?

Non. La décompression de packages ZIP ne peut pas fusionner ni décompresser des archives ZIP multiparties (fractionnées).

La décompression de packages ZIP ne fusionne pas le contenu des packages ZIP multiparties. Par conséquent, cette fonctionnalité ne peut pas décompresser les packages ZIP multiparties.

Pourquoi le bouton Decompress ZIP Package est-il grisé ?

  • Function Compute n'est pas activé. Activez-le sur la page Function Compute.

  • La décompression de packages ZIP n'est pas prise en charge dans la région de votre bucket. Pour plus d'informations, consultez la rubrique Limites.