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.
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.
-
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.
-
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
Connectez-vous à la console OSS.
Dans le volet de navigation de gauche, cliquez sur Buckets. Sur la page qui s'affiche, cliquez sur le nom du bucket cible.
Dans l'arborescence de navigation de gauche, choisissez .
-
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.
ImportantSi 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.
AvertissementPour é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 └─── ... -
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
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.
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.
Dans le panneau Modify Trigger, modifiez le paramètre Object Prefix et conservez les paramètres par défaut pour les autres options.
Cliquez sur OK.
Modifier les configurations de la fonction
Sur l'onglet Configurations de la page de détails de la fonction, cliquez sur Modify dans la section Basic Settings ou Environment Information.
-
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
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.
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.
Dans le message qui s'affiche, cliquez sur Delete.
Référence
Empaqueter et télécharger des objets sous forme de fichier ZIP
