Utilisez Amazon S3 Glacier avec AWS CLI - AWS Command Line Interface

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisez Amazon S3 Glacier avec AWS CLI

Présentation d'Amazon S3 Glacier

Cette rubrique présente des exemples de AWS CLI commandes qui exécutent des tâches courantes pour S3 Glacier. Les exemples montrent comment utiliser le AWS CLI pour télécharger un fichier volumineux sur S3 Glacier en le divisant en plusieurs parties et en les chargeant depuis la ligne de commande.

Vous pouvez accéder aux fonctionnalités d'Amazon S3 Glacier à l'aide du AWS Command Line Interface (AWS CLI). Pour répertorier les AWS CLI commandes pour S3 Glacier, utilisez la commande suivante.

aws glacier help
Note

Pour des références de commande et des exemples supplémentaires, voir aws glacier la référence des AWS CLI commandes.

Prérequis

Pour exécuter les glacier commandes, vous devez :

  • Installation et configuration de l'AWS CLI. Pour plus d’informations, consultez Installez ou mettez à jour la dernière version du AWS CLI et Authentification et identifiants d'accès.

  • Ce tutoriel utilise plusieurs outils de ligne de commande qui sont généralement préinstallés sur des systèmes d'exploitation de type Unix, y compris Linux et macOS. Les utilisateurs de Windows peuvent utiliser les mêmes outils en installant Cygwin et en exécutant les commandes à partir du terminal Cygwin. Les commandes et utilitaires natifs de Windows qui exécutent les mêmes fonctions sont signalés lorsqu'ils sont disponibles.

Création d'un coffre-fort Amazon S3 Glacier

Créez un coffre à l'aide de la commande create-vault.

$ aws glacier create-vault --account-id - --vault-name myvault { "location": "/123456789012/vaults/myvault" }
Note

Toutes les commandes S3 Glacier nécessitent un paramètre d'ID de compte. Utilisez le trait d'union (--account-id -) pour utiliser le compte actuel.

Préparer un fichier pour le chargement

Créez un fichier pour le chargement test. Les commandes suivantes permettent de créer un fichier largefile contenant exactement 3 Mio de données aléatoires.

Linux ou macOS

$ dd if=/dev/urandom of=largefile bs=3145728 count=1 1+0 records in 1+0 records out 3145728 bytes (3.1 MB) copied, 0.205813 s, 15.3 MB/s

dd est un utilitaire qui copie un nombre d'octets d'un fichier d'entrée vers un fichier de sortie. L'exemple précédent utilise le fichier de périphérique système /dev/urandom comme source de données aléatoires. fsutil exécute une fonction similaire sous Windows.

Windows

C:\> fsutil file createnew largefile 3145728 File C:\temp\largefile is created

Ensuite, fractionnez le fichier en fragments de 1 Mio (1 048 576 octets).

$ split -b 1048576 --verbose largefile chunk creating file `chunkaa' creating file `chunkab' creating file `chunkac'
Note

HJ-Split est un utilitaire de fractionnement de fichier gratuit pour Windows et de nombreuses autres plateformes.

Lancer un chargement en plusieurs parties et charger des fichiers

Créez un téléchargement partitionné dans Amazon S3 Glacier à l'aide de la initiate-multipart-upload commande.

$ aws glacier initiate-multipart-upload --account-id - --archive-description "multipart upload test" --part-size 1048576 --vault-name myvault { "uploadId": "19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ", "location": "/123456789012/vaults/myvault/multipart-uploads/19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ" }

S3 Glacier nécessite la taille de chaque partie en octets (1 MiB dans cet exemple), le nom de votre coffre-fort et un ID de compte pour configurer le téléchargement en plusieurs parties. L'AWS CLI produit un ID de chargement lorsque l'opération est terminée. Enregistrez l'ID de chargement dans une variable shell en vue d'une utilisation ultérieure.

Linux ou macOS

$ UPLOADID="19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ"

Windows

C:\> set UPLOADID="19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ"

Utilisez ensuite la commande upload-multipart-part pour télécharger chacune des trois parties.

$ aws glacier upload-multipart-part --upload-id $UPLOADID --body chunkaa --range 'bytes 0-1048575/*' --account-id - --vault-name myvault { "checksum": "e1f2a7cd6e047fa606fe2f0280350f69b9f8cfa602097a9a026360a7edc1f553" } $ aws glacier upload-multipart-part --upload-id $UPLOADID --body chunkab --range 'bytes 1048576-2097151/*' --account-id - --vault-name myvault { "checksum": "e1f2a7cd6e047fa606fe2f0280350f69b9f8cfa602097a9a026360a7edc1f553" } $ aws glacier upload-multipart-part --upload-id $UPLOADID --body chunkac --range 'bytes 2097152-3145727/*' --account-id - --vault-name myvault { "checksum": "e1f2a7cd6e047fa606fe2f0280350f69b9f8cfa602097a9a026360a7edc1f553" }
Note

L'exemple précédent utilise le signe dollar ($) pour faire référence au contenu de la variable de terminal UPLOADID sur Linux. Sur la ligne de commande Windows, utilisez un signe de pourcentage (%) de chaque côté du nom de la variable (par exemple,%UPLOADID%).

Vous devez spécifier la plage d'octets de chaque pièce lorsque vous la chargez afin que S3 Glacier puisse la réassembler dans le bon ordre. Chaque partie étant de 1 048 576 octets, la première occupe les octets 0 à 1 048 575, la deuxième les octets 1 048 576 à 2 097 151 et la troisième les octets 2 097 152 à 3 145 727.

Procéder au chargement

Amazon S3 Glacier nécessite un hachage arborescent du fichier d'origine pour confirmer que tous les éléments chargés sont AWS intacts.

Pour calculer un hachage d'arborescence, vous devez fractionner le fichier en parties de 1 Mio et calculez un hachage SHA-256 binaire de chaque partie. Vous fractionnez ensuite la liste des hachages en paires, combinez les deux hachages binaires dans chaque paire et prenez les hachages des résultats. Répétez ce processus jusqu'à ce qu’il ne reste qu'un seul hachage. Si le un nombre de hachages est impair à un niveau, vous devez le promouvoir au niveau suivant sans le modifier.

L'élément clé pour calculer un hachage d'arborescence correctement lors de l'utilisation des utilitaires de ligne de commande consiste à stocker chaque hachage au format binaire et à convertir en hexadécimal uniquement à la dernière étape. La combinaison ou le hachage de la version hexadécimale d'un hachage dans l'arborescence entraîne un résultat incorrect.

Note

Les utilisateurs de Windows peuvent utiliser la commande type à la place de cat. OpenSSL est disponible pour Windows à l'adresse OpenSSL.org.

Pour calculer un hachage d'arborescence
  1. Fractionnez le fichier d'origine en parties de 1 Mio, si ce n'est déjà fait.

    $ split --bytes=1048576 --verbose largefile chunk creating file `chunkaa' creating file `chunkab' creating file `chunkac'
  2. Calculez et stockez le hachage SHA-256 binaire de chaque segment.

    $ openssl dgst -sha256 -binary chunkaa > hash1 $ openssl dgst -sha256 -binary chunkab > hash2 $ openssl dgst -sha256 -binary chunkac > hash3
  3. Combinez les deux premiers hachages et prenez le hachage binaire du résultat.

    $ cat hash1 hash2 > hash12 $ openssl dgst -sha256 -binary hash12 > hash12hash
  4. Combinez le hachage parent des segments aa et ab au hachage de segment ac et hachez le résultat, cette fois en sortie hexadécimale. Stockez le résultat dans une variable shell.

    $ cat hash12hash hash3 > hash123 $ openssl dgst -sha256 hash123 SHA256(hash123)= 9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67 $ TREEHASH=9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67

Enfin, terminez le chargement avec la commande complete-multipart-upload. Cette commande prend la taille du fichier d'origine en octets, la valeur de hachage d'arborescence finale au format hexadécimal, ainsi que votre ID de compte et le nom de coffre.

$ aws glacier complete-multipart-upload --checksum $TREEHASH --archive-size 3145728 --upload-id $UPLOADID --account-id - --vault-name myvault { "archiveId": "d3AbWhE0YE1m6f_fI1jPG82F8xzbMEEZmrAlLGAAONJAzo5QdP-N83MKqd96Unspoa5H5lItWX-sK8-QS0ZhwsyGiu9-R-kwWUyS1dSBlmgPPWkEbeFfqDSav053rU7FvVLHfRc6hg", "checksum": "9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67", "location": "/123456789012/vaults/myvault/archives/d3AbWhE0YE1m6f_fI1jPG82F8xzbMEEZmrAlLGAAONJAzo5QdP-N83MKqd96Unspoa5H5lItWX-sK8-QS0ZhwsyGiu9-R-kwWUyS1dSBlmgPPWkEbeFfqDSav053rU7FvVLHfRc6hg" }

Vous pouvez également vérifier l'état du coffre avec la commande describe-vault.

$ aws glacier describe-vault --account-id - --vault-name myvault { "SizeInBytes": 3178496, "VaultARN": "arn:aws:glacier:us-west-2:123456789012:vaults/myvault", "LastInventoryDate": "2018-12-07T00:26:19.028Z", "NumberOfArchives": 1, "CreationDate": "2018-12-06T21:23:45.708Z", "VaultName": "myvault" }
Note

L'état du coffre est mis à jour une fois par jour. Pour plus d'informations, consultez Utilisation des coffres.

Il est maintenant possible de supprimer sans risque le bloc et les fichiers de hachage que vous avez créés.

$ rm chunk* hash*

Pour plus d'informations sur les téléchargements partitionnés, consultez les sections Chargement de grandes archives par parties et Calcul des sommes de contrôle dans le guide du développeur Amazon S3 Glacier.

Ressources

AWS CLIréférence :

Référence du service :