Partie chargement (PUT uploadID) - 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.

Partie chargement (PUT uploadID)

Description

Cette opération de chargement partitionné permet de charger une partie d'une archive. Vous pouvez charger des parties de l'archive dans n'importe quel ordre car vous spécifiez la plage d'octets de l'archive assemblée qui sera chargée dans cette partie dans votre demande de chargement partiel. Vous pouvez également charger ces différentes parties en parallèle. Vous pouvez charger jusqu'à 10 000 parties pour un chargement partitionné.

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

Amazon S3 Glacier (S3 Glacier) rejette votre demande de chargement partiel si l'une des conditions suivantes est vraie :

  • Le hachage d'arborescence SHA256 ne correspond pas – Pour éviter que les données de la partie en questions soient corrompues pendant la transmission, vous calculez un hachage d'arborescence SHA256 de la partie, puis vous l'incluez dans votre demande. Après avoir reçu les données de la partie, S3 Glacier calcule également un hachage d'arborescence SHA256. Si les deux valeurs de hachage ne correspondent pas, l'opération échoue. Pour plus d'informations sur le calcul d'un hachage d'arborescence SHA256, consultez la section Calcul des totaux de contrôle.

  • Le hachage linéaire SHA256 ne correspond pas – Obligatoire pour l'autorisation, vous calculez le hachage linéaire SHA256 de l'ensemble de la charge utile chargée et vous l'incluez dans votre demande. Pour plus d'informations sur le calcul d'un hachage linéaire SHA256, consultez la page Calcul des totaux de contrôle.

  • La taille de la partie ne correspond pas – La taille de chaque partie, à l'exception de la dernière, doit correspondre à la taille spécifiée dans la demande Lancement de chargement partitionné (POST multipart-uploads) correspondante. La taille de la dernière partie doit être identique, ou inférieure, à la taille spécifiée.

    Note

    Si vous chargez une partie dont la taille est inférieure à la taille de la partie spécifiée dans votre première demande de chargement partitionné et si cette partie n'est pas la dernière, la demande de chargement de la partie est réussie. Toutefois, la demande suivante de chargement partitionné complet échouera.

  • La plage ne correspond pas – La valeur de la plage d'octets de la demande ne correspond pas à la taille de la partie spécifiée dans la demande de lancement correspondante. Par exemple, si vous spécifiez une taille de partie de 4 194 304 octets (4 Mo), les plages de parties comprises entre 0 et 4 194 303 octets (4 Mo - 1) et entre 4 194 304 (4 Mo) et 8 388 607 (8 Mo - 1) sont valides. Toutefois, si vous définissez une valeur de plage de 2 Mo à 6 Mo, la plage ne correspond pas à la taille de la partie et le chargement échouera.

Cette opération est idempotente. Si vous téléchargez la même partie plusieurs fois, les données figurant dans la demande plus récente remplace les données chargées précédemment.

Requêtes

Vous envoyez cette demande PUT HTTP à l'URI de l'ID de chargement qui a été renvoyé par votre demande de lancement de chargement partitionné. S3 Glacier utilise l'ID de chargement pour associer les chargements partiels à un chargement partitionné spécifique. La demande doit inclure un hachage d'arborescence SHA256 des données partitionnées (en-tête x-amz-SHA256-tree-hash), un hachage linéaire SHA256 de toute la charge utile (en-tête x-amz-content-sha256), la plage d'octets (en-tête Content-Range) et la longueur de la partie en octets (en-tête Content-Length).

Syntaxe

PUT /AccountId/vaults/VaultName/multipart-uploads/uploadID HTTP/1.1 Host: glacier.Region.amazonaws.com Date: Date Authorization: SignatureValue Content-Range: ContentRange Content-Length: PayloadSize Content-Type: application/octet-stream x-amz-sha256-tree-hash: Checksum of the part x-amz-content-sha256: Checksum of the entire payload 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
Content-Length

Identifie la longueur de la partie en octets.

Type : chaîne

Par défaut : aucun

Contraintes: Aucune

Non
Content-Range

Identifie la plage d'octets de l'archive assemblée qui sera chargée dans cette partie. S3 Glacier se sert de ces informations pour assembler l'archive dans le bon ordre. Le format de cet en-tête suit RFC 2616. Voici un exemple d'en-tête : Content-Range:bytes 0-4194303/*.

Type : chaîne

Par défaut : aucun

Contraintes : la plage ne peut pas être supérieure à la taille de la partie que vous avez spécifiée lorsque vous avez lancé le chargement partitionné.

Oui
x-amz-content-sha256

Total de contrôle SHA256 (hachage linéaire) de la charge utile chargée. Il ne s'agit pas de la valeur que vous spécifiez dans l'en-tête x-amz-sha256-tree-hash.

Type : chaîne

Par défaut : aucun

Contraintes: Aucune

Oui
x-amz-sha256-tree-hash

Spécifie un hachage d'arborescence SHA256 des données en cours de chargement. Pour plus d'informations sur le calcul d'un hachage d'arborescence SHA256, consultez la section Calcul des totaux de contrôle.

Type : chaîne

Par défaut : aucun

Contraintes: Aucune

Oui

Corps de la requête

Le corps de la demande contient les données à charger.

Réponses

Lorsqu'un chargement partiel aboutit, S3 Glacier renvoie une réponse 204 No Content.

Syntaxe

HTTP/1.1 204 No Content x-amzn-RequestId: x-amzn-RequestId Date: Date x-amz-sha256-tree-hash: ChecksumComputedByAmazonGlacier

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
x-amz-sha256-tree-hash

Hachage d'arborescence SHA256 que S3 Glacier a calculé pour la partie chargée.

Type : chaîne

Corps de la réponse

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

Exemple

La demande suivante charge une partie de 4 Mo. La demande définit la plage d'octets afin que ce soit la première partie de l'archive.

Exemple de requête

L'exemple envoie une demande PUT HTTP pour charger une partie de 4 Mo. La demande est envoyée à l'URI de l'ID de chargement qui a été retournée par la demande de lancement du chargement partitionné. L'en-tête Content-Range identifie la partie en tant que première partie de 4 Mo de l'archive.

PUT /-/vaults/examplevault/multipart-uploads/OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE HTTP/1.1 Host: glacier.us-west-2.amazonaws.com Date: Wed, 10 Feb 2017 12:00:00 GMT Content-Range:bytes 0-4194303/* x-amz-sha256-tree-hash:c06f7cd4baacb087002a99a5f48bf953 x-amz-content-sha256:726e392cb4d09924dbad1cc0ba3b00c3643d03d14cb4b823e2f041cff612a628 Content-Length: 4194304 Authorization: Authorization=AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20141123/us-west-2/glacier/aws4_request,SignedHeaders=host;x-amz-content-sha256;x-amz-date;x-amz-glacier-version,Signature=16b9a9e220a37e32f2e7be196b4ebb87120ca7974038210199ac5982e792cace

Pour charger la partie suivante, la procédure est la même. Vous devez toutefois calculer un nouveau hachage d'arborescence SHA256 de la partie que vous chargez et spécifier une nouvelle plage d'octets pour indiquer où la partie ira dans l'assemblage final. La demande suivante charge une autre partie en utilisant le même ID de chargement. La demande spécifie les 4 Mo suivants de l'archive après la demande précédente et une taille de partie de 4 Mo.

PUT /-/vaults/examplevault/multipart-uploads/OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE HTTP/1.1 Host: glacier.us-west-2.amazonaws.com Date: Wed, 10 Feb 2017 12:00:00 GMT Content-Range:bytes 4194304-8388607/* Content-Length: 4194304 x-amz-sha256-tree-hash:f10e02544d651e2c3ce90a4307427493 x-amz-content-sha256:726e392cb4d09924dbad1cc0ba3b00c3643d03d14cb4b823e2f041cff612a628 x-amz-glacier-version: 2012-06-01 Authorization: Authorization=AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20120525/us-west-2/glacier/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date;x-amz-glacier-version, Signature=16b9a9e220a37e32f2e7be196b4ebb87120ca7974038210199ac5982e792cace

Les différentes parties peuvent être chargées dans n'importe quel ordre : S3 Glacier se sert de la spécification de plage de chaque partie pour déterminer dans quel ordre les assembler.

Exemple de réponse

HTTP/1.1 204 No Content x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q x-amz-sha256-tree-hash: c06f7cd4baacb087002a99a5f48bf953 Date: Wed, 10 Feb 2017 12:00:00 GMT