Achèvement du chargement partitionné (POST uploadID) - Amazon S3 Glacier

Si vous débutez dans le stockage d'archives dans Amazon Simple Storage Service (Amazon S3), nous vous recommandons dans un premier temps de vous familiariser avec les classes de stockage S3 Glacier dans Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval et S3 Glacier Deep Archive. Pour plus d'informations, consultez les sections Classes de stockage S3 Glacier et Classes de stockage pour l'archivage d'objets dans le guide de l'utilisateur Amazon S3.

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.

Achèvement du chargement partitionné (POST uploadID)

Description

Vous appelez cette opération de chargement partitionné pour informer Amazon S3 Glacier (S3 Glacier) que toutes les parties de l'archive ont été chargées et que S3 Glacier peut maintenant assembler l'archive à partir des parties chargées.

Pour plus d'informations sur le chargement partitionné, consultez Chargement d'archives volumineuses en plusieurs parties (chargement partitionné).

Après avoir assemblé et enregistré l'archive dans le coffre, S3 Glacier renvoie l'ID d'archive de la ressource d'archive nouvellement créée. Une fois que vous avez chargé une archive, vous devez enregistrer l'ID de l'archive renvoyé pour extraire l'archive ultérieurement.

Dans la demande, vous devez inclure le hachage d'arborescence SHA256 calculé de l'archive entière que vous avez chargée. Pour plus d'informations sur le calcul d'un hachage d'arborescence SHA256, consultez la section Calcul des totaux de contrôle. Côté serveur, S3 Glacier construit également le hachage d'arborescence SHA256 de l'archive assemblée. Si les valeurs correspondent, S3 Glacier enregistre l'archive dans le coffre. Sinon, il renvoie une erreur et l'opération échoue. L'opération Répertorier les parties (GET uploadID) renvoie la liste des parties chargées pour un chargement partitionné spécifique. Cette liste comporte les informations de total de contrôle pour chaque partie chargée, lesquelles peuvent être utilisées pour déboguer un problème de total de contrôle incorrect.

Par ailleurs, S3 Glacier recherche aussi les plages de contenu manquantes. Lors du chargement des parties, vous spécifiez les valeurs de plage qui identifient l'emplacement auquel se trouve chaque partie dans l'assemblage final de l'archive. Pendant l'assemblage de l'archive finale, S3 Glacier vérifie s'il manque des plages de contenu. Si c'est le cas, S3 Glacier renvoie une erreur et l'opération d'achèvement du chargement partitionné échoue.

L'opération d'achèvement du chargement partitionné est idempotente. Une fois que vous avez effectué correctement le chargement partitionné, si vous appelez à nouveau l'opération dans un court délai, celle-ci aboutit et renvoie le même ID d'archive. Cela est très utile si vous rencontrez un problème réseau ou si vous recevez une erreur serveur 500, auquel cas vous pouvez répéter votre demande d'achèvement du chargement partitionné et obtenir le même ID d'archive sans créer d'archives en double. Notez toutefois qu'une fois le chargement partitionné terminé, vous ne pouvez pas appeler l'opération d'affichage de la liste des parties et que le chargement partitionné n'apparaîtra pas dans la réponse d'affichage de la liste des chargements partitionnés même si une opération idempotente est possible.

Requêtes

Pour achever un chargement partitionné, vous envoyez une demande HTTP POST à l'URI de l'ID de chargement que S3 Glacier a créé en réponse à votre demande de lancement de chargement partitionné. Il s'agit de l'URI que vous avez utilisé lors du chargement des parties. En plus des en-têtes requis courants, vous devez inclure le résultat du hachage d'arborescence SHA256 de la totalité de l'archive et la taille totale de l'archive en octets.

Syntaxe

POST /AccountId/vaults/VaultName/multipart-uploads/uploadID Host: glacier.Region.amazonaws.com Date: date Authorization: SignatureValue x-amz-sha256-tree-hash: SHA256 tree hash of the archive x-amz-archive-size: ArchiveSize in bytes x-amz-glacier-version: 2012-06-01

Note

La valeur de AccountId est l'ID de Compte AWS du compte propriétaire du coffre. Vous pouvez spécifier un ID de Compte AWS ou éventuellement un simple « - » (trait d'union), auquel cas Amazon S3 Glacier utilise l'ID de Compte AWS associé aux informations d'identification utilisées pour signer la demande. Si vous utilisez un ID de compte, évitez d'y inclure des traits d'union (« - »).

Paramètres de demande

Cette opération n'utilise pas les paramètres de demande.

En-têtes de demande

Cette opération utilise les en-têtes de demande suivants, en plus de ceux communs à toutes les opérations. Pour plus d'informations sur les en-têtes de demande communs, consultez En-têtes de demande communs.

Name (Nom) Description Obligatoire
x-amz-archive-size

Taille totale, en octets, de la totalité de l'archive. Cette valeur doit être la somme de toutes les tailles des différentes parties que vous avez chargées.

Type : chaîne

Par défaut : aucun

Contraintes: Aucune

Oui
x-amz-sha256-tree-hash

Hachage d'arborescence SHA256 de l'archive entière. Il s'agit du hachage d'arborescence SHA256 des différentes parties. Si la valeur que vous spécifiez dans la demande ne correspond pas au hachage d'arborescence SHA256 de l'archive finale assemblée tel qu'il a été calculé par S3 Glacier, S3 Glacier renvoie une erreur et la demande échoue.

Type : chaîne

Par défaut : aucun

Contraintes: Aucune

Oui

Elements de la demande

Cette opération n'utilise pas les éléments de la demande.

Réponses

Amazon S3 Glacier (S3 Glacier) crée un hachage d'arborescence SHA256 de l'archive entière. Si la valeur correspond au hachage d'arborescence SHA256 de l'archive entière que vous avez spécifié dans la demande, S3 Glacier ajoute l'archive au coffre. En réponse, il renvoie l'en-tête HTTP Location avec le chemin d'accès de l'URL de la ressource d'archivage nouvellement ajoutée. Si la taille de l'archive ou le hachage SHA256 que vous avez envoyé dans la demande ne correspond pas, S3 Glacier renvoie une erreur et le chargement reste à l'état inachevé. Il est possible de renouveler ultérieurement l'opération d'achèvement du chargement partitionné avec les valeurs correctes pour créer correctement une archive. Si un chargement partitionné n'aboutit pas, S3 Glacier finit pas redemander l'ID de chargement.

Syntaxe

HTTP/1.1 201 Created x-amzn-RequestId: x-amzn-RequestId Date: Date Location: Location x-amz-archive-id: ArchiveId

En-têtes de réponse

Une réponse positive comprend les en-têtes de réponse suivants, en plus de ceux communs à toutes les opérations. Pour plus d'informations sur les en-têtes de réponse communs, consultez En-têtes de réponse communs.

Name (Nom) Description
Location

Chemin d'accès URI relatif de l'archive nouvellement créée. Cette URL inclut l'ID d'archive généré par S3 Glacier.

Type : chaîne

x-amz-archive-id

ID de l'archive. Cette valeur fait également partie de l'en-tête Location.

Type : chaîne

Champs de réponse

Cette opération ne renvoie pas de corps de réponse.

Exemple

Exemple de requête

Dans cet exemple, une demande HTTP POST est envoyée à l'URI qui a été renvoyé par une demande de lancement du chargement partitionné. La demande spécifie à la fois l'arborescence de hachage SHA256 de l'archive entière et la taille totale de l'archive.

POST /-/vaults/examplevault/multipart-uploads/OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE HTTP/1.1 Host: glacier.us-west-2.amazonaws.com z-amz-Date: 20170210T120000Z x-amz-sha256-tree-hash:1ffc0f54dd5fdd66b62da70d25edacd0 x-amz-archive-size:8388608 x-amz-glacier-version: 2012-06-01 Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20141123/us-west-2/glacier/aws4_request,SignedHeaders=host;x-amz-date;x-amz-glacier-version,Signature=9257c16da6b25a715ce900a5b45b03da0447acf430195dcb540091b12966f2a2

Exemple de réponse

L'exemple de réponse suivant montre que S3 Glacier est parvenu à créer une archive à partir des parties que vous avez chargées. La réponse inclut l'ID de l'archive avec le chemin d'accès complet.

HTTP/1.1 201 Created x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q Date: Wed, 10 Feb 2017 12:00:00 GMT Location: /111122223333/vaults/examplevault/archives/NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId x-amz-archive-id: NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId

Vous pouvez maintenant envoyer des demandes HTTP à l'URI de la ressource/archive nouvellement ajoutée. Par exemple, vous pouvez envoyer une demande GET pour extraire l'archive.