Chargement d'archives volumineuses à l'aide de l'interface AWS CLI - Amazon S3 Glacier

Cette page est réservée aux clients existants du service S3 Glacier utilisant Vaults et l'original REST API de 2012.

Si vous recherchez des solutions de stockage d'archives, nous vous conseillons d'utiliser les classes de stockage S3 Glacier dans Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval et S3 Glacier Deep Archive. Pour en savoir plus sur ces options de stockage, consultez les sections Classes de stockage S3 Glacier et Stockage de données à long terme à l'aide des classes de stockage S3 Glacier dans le guide de l'utilisateur Amazon S3. Ces classes de stockage utilisent Amazon S3API, sont disponibles dans toutes les régions et peuvent être gérées au sein de la console Amazon S3. Ils offrent des fonctionnalités telles que l'analyse des coûts de stockage, Storage Lens, des fonctionnalités de chiffrement optionnelles avancées, etc.

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.

Chargement d'archives volumineuses à l'aide de l'interface AWS CLI

Vous pouvez charger une archive dans Amazon S3 Glacier (S3 Glacier) à l'aide du AWS Command Line Interface (AWS CLI). Pour améliorer l'expérience de téléchargement des archives volumineuses, S3 Glacier propose plusieurs API opérations permettant de prendre en charge les téléchargements partitionnés. En utilisant ces API opérations, vous pouvez télécharger des archives en plusieurs parties. Ces parties peuvent être chargées indépendamment, dans n'importe quel ordre, et en parallèle. Si le chargement d'une partie échoue, vous devez uniquement recharger cette partie, pas l'archive entière. Vous pouvez utiliser le chargement partitionné pour les archives dont la taille est comprise entre 1 octet et environ 40 000 gibioctets (Gio).

Pour plus d'informations sur les chargements partitionnés S3 Glacier, consultez Chargement d'archives volumineuses en plusieurs parties (chargement partitionné).

(Prérequis) Configuration du AWS CLI

  1. Téléchargez et configurez l’interface AWS CLI. Pour obtenir des instructions, consultez les rubriques suivantes dans le Guide de l’utilisateur de l’interface AWS Command Line Interface  :

    Installation du AWS Command Line Interface

    Configuration du AWS Command Line Interface

  2. Vérifiez votre AWS CLI configuration en saisissant les commandes suivantes à l'invite de commande. Ces commandes ne fournissent pas directement d'informations d'identification, par conséquent ce sont les informations du profil par défaut qui sont utilisées.

    • Essayez d'utiliser la commande help.

      aws help
    • Pour obtenir la liste des coffres S3 Glacier du compte configuré, utilisez la commande list-vaults. Remplacez 123456789012 avec ton Compte AWS identifiant.

      aws glacier list-vaults --account-id 123456789012
    • Pour voir les données de configuration actuelles pour le AWS CLI, utilisez la aws configure list commande.

      aws configure list

(Prérequis) Installation de Python

Pour terminer un téléchargement en plusieurs parties, vous devez calculer le hachage SHA256 arborescent de l'archive que vous chargez. Cela est différent du calcul du hachage SHA256 arborescent du fichier que vous souhaitez télécharger. Pour calculer le hachage SHA256 arborescent de l'archive que vous téléchargez, vous pouvez utiliser Java C# (avec. NET), ouPython. Dans cet exemple, vous allez utiliser Python. Pour savoir comment utiliser Java ou C#, consultez Calcul des totaux de contrôle.

Pour plus d'informations sur l'installation de Python, consultez Install ou update Python dans le Guide du développeur Boto3.

(Prérequis) Création d'un coffre S3 Glacier

Pour pouvoir utiliser l'exemple suivant, vous devez avoir créé au moins un coffre S3 Glacier. Pour plus d'informations sur la création de coffres, consultez Création d'un coffre dans Amazon S3 Glacier.

Exemple : téléchargement partiel d'archives volumineuses à l'aide du AWS CLI

Dans cet exemple, vous allez créer un fichier et utiliser des API opérations de téléchargement partitionné pour télécharger ce fichier, en plusieurs parties, vers Amazon S3 Glacier.

Important

Avant de commencer cette procédure, assurez-vous d'avoir effectué toutes les étapes prérequises. Pour télécharger une archive, vous devez avoir créé un coffre, le AWS CLI configurer et être prêt à utiliser Java le langage C# ou Python à calculer un hachage SHA256 arborescent.

La procédure suivante utilise les complete-multipart-upload AWS CLI commandes initiate-multipart-uploadupload-multipart-part, et.

Pour obtenir des informations plus détaillées sur chacun de ces commandes, consultez initiate-multipart-upload, upload-multipart-part et complete-multipart-upload dans le guide de référence des commandes AWS CLI .

  1. Utilisez la commande initiate-multipart-upload pour créer une ressource de chargement partitionné. Dans votre demande, spécifiez la taille des parties en nombre d'octets. Chacune des parties que vous chargez, à l'exception de la dernière, doit avoir cette taille. Vous n'avez pas besoin de connaître la taille globale de l'archive lorsque vous lancez un chargement. Cependant, vous aurez besoin de connaître la taille totale, en octets, de chaque partie pour effectuer le chargement à l'étape finale.

    Dans la commande ci-dessous, remplacez les valeurs des paramètres --vault-name et --account-ID par vos propres informations. Cette commande indique que vous allez charger une archive avec des parties d'une taille d'1 mébioctet (Mio) (1 024 x 1024 octets) par fichier. Remplacez la valeur de ce paramètre --part-size si nécessaire.

    aws glacier initiate-multipart-upload --vault-name awsexamplevault --part-size 1048576 --account-id 123456789012

    Sortie attendue :

    { "location": "/123456789012/vaults/awsexamplevault/multipart-uploads/uploadId", "uploadId": "uploadId" }

    Une fois terminée, la commande sort l'ID de chargement de la ressource de chargement partitionné ainsi que son emplacement dans S3 Glacier. Cet ID de chargement vous servira dans les prochaines étapes.

  2. Pour cet exemple, vous pouvez utiliser les commandes suivantes pour créer un fichier de 4,4 Mio, le scinder en fragments de 1 Mio et charger chacun de ces fragments. Pour charger vos propres fichiers, vous pouvez suivre une procédure similaire en scindant vos données en fragments et en chargeant chaque partie.

    Linux ou macOS

    La commande suivante crée un fichier de 4,4 Mio, nommé file_to_upload, sur Linux ou macOS.

    mkfile -n 9000b file_to_upload
    Windows

    La commande suivante crée un fichier de 4,4 Mio, nommé file_to_upload, sur Windows.

    fsutil file createnew file_to_upload 4608000
  3. Vous allez ensuite scinder ce fichier en fragments de 1 Mio.

    split -b 1048576 file_to_upload chunk

    Vous disposez maintenant des cinq fragments suivants. Les quatre premiers font 1 Mio, et le dernier environ 400 kibioctets (Kio).

    chunkaa chunkab chunkac chunkad chunkae
  4. Utilisez la commande upload-multipart-part pour charger une partie d'une archive. Vous pouvez charger les parties de l'archive dans n'importe quel ordre. Vous pouvez également les charger en parallèle. Vous pouvez charger jusqu'à 10 000 parties pour un chargement partitionné.

    Dans la commande suivante, remplacez les valeurs des paramètres --vault-name, --account-ID et --upload-id. L'ID de chargement doit correspondre à l'ID indiqué comme sortie de la commande initiate-multipart-upload. Le paramètre --range indique que vous allez charger une partie dont la taille est de 1 Mio (1 024 x 1 024 octets). Cette taille doit correspondre à celle que vous avez spécifiée dans la commande initiate-multipart-upload. Ajustez cette valeur de taille si nécessaire. Le paramètre --body indique le nom de la partie que vous chargez actuellement.

    aws glacier upload-multipart-part --body chunkaa --range='bytes 0-1048575/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID

    En cas de succès, la commande génère une sortie contenant le total de contrôle de la partie chargée.

  5. Exécutez une nouvelle fois la commande upload-multipart-part pour charger les parties restantes de votre chargement partitionné. Mettez à jour les valeurs des paramètres --range et –-body pour chaque commande de sorte qu'elles correspondent à la partie que vous chargez.

    aws glacier upload-multipart-part --body chunkab --range='bytes 1048576-2097151/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkac --range='bytes 2097152-3145727/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkad --range='bytes 3145728-4194303/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkae --range='bytes 4194304-4607999/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    Note

    La valeur du paramètre --range de la commande finale est inférieure, car notre chargement fait moins de 1 Mio. En cas de succès, chaque commande génère une sortie contenant le total de contrôle de chaque partie chargée.

  6. Ensuite, vous allez assembler l'archive et terminer le chargement. Vous devez inclure la taille totale et le hachage SHA256 arborescent de l'archive.

    Pour calculer le hachage SHA256 arborescent de l'archive, vous pouvez utiliser Java C# ou. Python Dans cet exemple, vous allez utiliser Python. Pour savoir comment utiliser Java ou C#, consultez Calcul des totaux de contrôle.

    Créez le fichier Python checksum.py et insérez le code suivant. Si nécessaire, remplacez le nom du fichier d'origine.

    from botocore.utils import calculate_tree_hash checksum = calculate_tree_hash(open('file_to_upload', 'rb')) print(checksum)
  7. Exécutez checksum.py pour calculer le hachage de SHA256 l'arbre. Le hachage suivant peut ne pas correspondre à votre sortie.

    $ python3 checksum.py $ 3d760edb291bfc9d90d35809243de092aea4c47b308290ad12d084f69988ae0c
  8. Utilisez la commande complete-multipart-upload pour terminer le chargement de l'archive. Remplacez les valeurs des paramètres --vault-name, --account-ID, --upload-ID et --checksum. La valeur du paramètre --archive indique la taille totale, en octets, de l'archive. Cette valeur doit correspondre à la somme des tailles des différentes parties que vous avez chargées. Remplacez cette valeur si nécessaire.

    aws glacier complete-multipart-upload --archive-size 4608000 --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID --checksum checksum

    Une fois terminée, la commande sort l'ID, le total de contrôle et l'emplacement de l'archive dans S3 Glacier.