ListObjects
Cette opération renvoie tout ou partie des objets d'un bucket, jusqu'à 1 000.
Exemple de requête :
GET /{fully_qualified_bucket_name} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
<ListBucketResult>
<Name>{fully_qualified_bucket_name}</Name>
<Prefix></Prefix>
<Marker></Marker>
<Contents>
<Key>example-object.jpg</Key>
<LastModified>2022-10-17T01:56:20.000Z</LastModified>
<ETag>"bf1d937a4d46a19f3basdfeg5cc8b902"</ETag>
<Size>32347</Size>
<Owner>
<ID>canonical-user-id</ID>
<DisplayName>example-display-name</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
ListObjectsV2
Cette opération renvoie tout ou partie des objets d'un bucket, jusqu'à 1 000.
Exemple de requête :
GET /{fully_qualified_bucket_name}?list-type=2 HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
<ListBucketResult>
<Name>{fully_qualified_bucket_name}</Name>
<Prefix></Prefix>
<Marker></Marker>
<Contents>
<Key>example-object.jpg</Key>
<LastModified>2022-10-17T01:56:20.000Z</LastModified>
<ETag>"bf1d937a4d46a19f3basdfeg5cc8b902"</ETag>
<Size>32347</Size>
<Owner>
<ID>canonical-user-id</ID>
<DisplayName>example-display-name</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
GetObject (versionId facultatif)
Cette opération récupère un objet à partir d'un bucket avec un ID de version facultatif.
Exemple de requête :
GET /{fully_qualified_bucket_name}/{object_name}?versionId={object_version_id} HTTP/1.1
Host: host
Content-MD5: request header
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
Content-Length: 13432
[13432 bytes of object data]
GetObjectAcl (versionId facultatif)
Cette opération renvoie une réponse positive ainsi que l'ID, le nom à afficher et l'autorisation du propriétaire de l'objet, indiquant qu'il dispose d'un accès complet à l'objet. Pour effectuer cette opération, vous devez fournir les identifiants d'accès au compte.
Exemple de requête :
GET /{fully_qualified_bucket_name}/{object_name}?acl&versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
Content-Length: 157
<AccessControlPolicy>
<Owner>
<ID>canonical-user-id</ID>
<DisplayName>example-display-name</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee>
<ID>canonical-user-id</ID>
<DisplayName>example-display-name</DisplayName>
<Type>CanonicalUser</Type>
</Grantee>
<Permission>FULL_CONTROL</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
GetObjectRetention (versionId facultatif)
Cette opération récupère le mode de conservation de l'objet spécifié et la date d'expiration de la conservation Object Lock. Le bucket doit disposer d'une configuration de verrouillage des objets.
Exemple de requête :
GET /{fully_qualified_bucket_name}/{object_name}?retention&versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
X-amz-expected-bucket-owner: ExpectedBucketOwner (optional)
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
<Retention>
<Mode>COMPLIANCE</Mode>
<Timestamp>2022-10-17T01:56:20.000Z</Timestamp>
</Retention>
GetObjectLegalHold (versionId facultatif)
Cette opération permet d'obtenir le dernier état de la conservation légale d'un objet. Le bucket doit disposer d'une configuration de verrouillage des objets.
Exemple de requête :
GET /{fully_qualified_bucket_name}/{object_name}?legal-hold&versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
X-amz-expected-bucket-owner: ExpectedBucketOwner (optional)
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
<LegalHold>
<Status>ON</Status>
</LegalHold>
GetObjectTagging (versionId facultatif)
Cette opération utilise la sous-ressource de taggage pour renvoyer tous les tags d'un objet. Si le paramètre versionId
n'est pas spécifié, l'opération renvoie tous les tags de la version la plus récente de l'objet dans un bucket avec gestion des versions. Si la version actuelle de l'objet est un marqueur de suppression, un état MethodNotAllowed
est renvoyé avec l'en-tête de réponse x-amz-deletemarker
défini sur true
.
Exemple de requête :
GET /{fully_qualified_bucket_name}/{object_name}?tagging&versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
X-amz-expected-bucket-owner: ExpectedBucketOwner (optional)
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
Date: Mon, 17 Oct 2022 22:47:09 GMT
<Tagging>
<TagSet>
<Tag>
<Key>tag1</Key>
<Value>val1</Value>
</Tag>
<Tag>
<Key>tag2</Key>
<Value>val2</Value>
</Tag>
</TagSet>
</Tagging>
PutObject
Cette opération ajoute un objet à un bucket. Vous devez disposer des autorisations d'ÉCRITURE appropriées sur un bucket pour y ajouter un objet.
Version 2 du chiffrement
Pour un bucket EV2 (Encryption Version 2), la requête utilisera une clé AEAD par défaut pour le chiffrement si aucune clé personnalisée n'est spécifiée.
Pour utiliser une clé AEAD personnalisée pour le chiffrement, deux en-têtes doivent être définis :
x-amz-server-side-encryption: SSE-KMS
: indique que cette requête tente d'utiliser une clé AEAD personnalisée.x-amz-server-side-encryption-aws-kms-key-id: {custom_key_namespace}/{custom_key_name}
: spécifie la clé à utiliser. L'espace de noms de la clé doit se trouver dans le même projet que le bucket.
Exemple de requête :
PUT /{fully_qualified_bucket_name}/{object_name} HTTP/1.1
Host: host
Content-MD5: request header
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-Length: 5233
Content-type: text/plain
[5233 bytes of object data]
Exemple de réponse (réussite) :
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6C
Date: Mon, 17 Oct 2022 22:47:09 GMT
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
PutObjectTagging
Cette opération utilise la sous-ressource de taggage pour ajouter un ensemble de tags à un objet existant.
Exemple de requête :
PUT /{fully_qualified_bucket_name}/{object_name}?tagging HTTP/1.1
Host: host
Content-MD5: +b9TrAB9F8ne7rJpPkqavQ==
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-Length: {length}
Content-type: text/plain
<Tagging>
<TagSet>
<Tag>
<key>my-tag-key</key>
<value>my-tag-value</value>
</Tag>
</TagSet>
</Tagging>
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6C
Date: Mon, 17 Oct 2022 22:47:09 GMT
DeleteObject (versionId facultatif)
Cette opération vous permet de supprimer plusieurs objets d'un même bucket en une seule requête. La requête peut contenir une liste de 1 000 clés maximum que vous souhaitez supprimer.
Exemple de requête :
DELETE /{fully_qualified_bucket_name}/{object_name}?versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain
<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Object>
<Key>object_one.jpg</Key>
<VersionId>1234568892</VersionId>
</Object>
<Object>
<Key>object_two.jpg</Key>
</Object>
</Delete>
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: 5h4FxSNCUS7wP5z92eGCWDshNpMnRuXvETa4HH3LvvH6VAIr0jU7tH9kM7X+njXx
x-amz-request-id: A437B3B641629AEE
Date: Fri, 02 Oct 2023 01:53:42 GMT
Content-Type: application/xml
Content-Length: 251
<?xml version="1.0" encoding="UTF-8"?>
<DeleteResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Deleted>
<Key>object_one.jpg</Key>
</Deleted>
<Error>
<Key>object_two.jpg</Key>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
</Error>
</DeleteResult>
DeleteObjects (versionId facultatif)
Supprime un objet d'un bucket. Le comportement dépend de l'état de la gestion des versions du bucket : - Si la gestion des versions du bucket n'est pas activée, l'opération supprime définitivement l'objet. - Si la gestion des versions du bucket est activée, l'opération insère un marqueur de suppression, qui devient la version actuelle de l'objet. Pour supprimer définitivement un objet dans un bucket versionné, vous devez inclure son versionId dans la requête.
Exemple de requête :
DELETE /{fully_qualified_bucket_name}/{object_name}?versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain
Exemple de réponse (réussite) :
HTTP/1.1 204 NoContent
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6C
Date: Mon, 17 Oct 2022 22:47:09 GMT
DeleteObjectTagging (versionId facultatif)
Cette opération utilise la sous-ressource de taggage pour supprimer tous les tags d'un objet.
Exemple de requête :
DELETE /{fully_qualified_bucket_name}/{object_name}?tagging&versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain
Exemple de réponse (réussite) :
HTTP/1.1 204 NoContent
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6C
Date: Mon, 17 Oct 2022 22:47:09 GMT
HeadObject (versionId facultatif)
L'opération HEAD récupère les métadonnées d'un objet sans renvoyer l'objet lui-même. Cette opération est utile si vous ne vous intéressez qu'aux métadonnées d'un objet.
Exemple de requête :
HEAD /{fully_qualified_bucket_name}/{object_name}?versionId={VersionId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain
Exemple de réponse (réussite) :
HTTP/1.1 200
x-amz-id-2: ef8yU9AS1ed4OpIszj7UDNEHGran
x-amz-request-id: 318BC8BC143432E5
x-amz-version-id: 3HL4kqtJlcpXroDTDmjVBH40Nrjfkd
Date: Wed, 28 Oct 2023 22:32:00 GMT
Last-Modified: Sun, 1 Jan 2006 12:00:00 GMT
ETag: "fba9dede5f27731c9771645a39863328"
Content-Length: 434234
Content-Type: text/plain
Connection: close
CreateMultipartUpload
Cette action lance une importation en plusieurs parties et renvoie un ID d'importation.
Une importation en plusieurs parties vous permet d'ajouter un seul objet sous forme d'ensemble de parties. Chaque partie est une portion contiguë des données de l'objet. Importez ces parties d'objet indépendamment et dans n'importe quel ordre.
L'ID d'importation renvoyé permet d'associer toutes les parties à l'importation multipartie spécifique. Vous spécifiez cet ID d'importation dans chacune de vos requêtes d'importation de parties ultérieures. Vous utilisez également cet ID d'importation dans la requête finale pour finaliser ou annuler la requête d'importation en plusieurs parties.
Version 2 du chiffrement
L'ID d'importation renvoyé pour un bucket EV2(Encryption Version 2) ne sera généré qu'une seule fois. Si l'ID d'importation renvoyé par cette opération est perdu, il ne peut pas être récupéré à partir de ListMultipartUploads. Toutefois, les ID d'importation renvoyés par ListMultipartUploads peuvent être utilisés pour AbortMultipartUpload ou ListParts. Seul l'ID renvoyé par CreateMultipartUpload peut être utilisé pour UploadPart ou CompleteMultipartUpload.
Exemple de requête :
POST /{fully_qualified_bucket_name}/{object_name}?uploads HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
<InitiateMultipartUploadResult>
<Bucket>{fully_qualified_bucket_name}</Bucket>
<Key>{object_name}</Key>
<UploadId>VXBsb2FkIElEIGZvciA2aWWpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZA</UploadId>
</InitiateMultipartUploadResult>
ListMultipartUploads (max-uploads facultatif)
Cette opération liste les importations en plusieurs parties en cours pour un bucket.
Version 2 du chiffrement
Les ID d'importation renvoyés par cette opération ne fonctionneront qu'avec ListParts et AbortMultipartUpload.
Exemple de requête :
GET /{fully_qualified_bucket_name}?uploads&max-uploads={max-uploads} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
<ListMultipartUploadsResult>
<Bucket>{fully_qualified_bucket_name}</Bucket>
<KeyMarker></KeyMarker>
<UploadIdMarker></UploadIdMarker>
<NextKeyMarker>my-movie.m2ts</NextKeyMarker>
<NextUploadIdMarker>YW55IGlkZWEgd2h5IGVsdmluZydzIHVwbG9hZCBmYWlsZWQ</NextUploadIdMarker>
<MaxUploads>3</MaxUploads>
<IsTruncated>true</IsTruncated>
<Upload>
<Key>{object_name}</Key>
<UploadId>VXBsb2FkIElEIGZvciA2aWWpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZA</UploadId>
<Initiator>
<ID>{canonical-user-id}</ID>
<DisplayName>InitiatorDisplayName</DisplayName>
</Initiator>
<Owner>
<ID>{canonical-owner-user-id}</ID>
<DisplayName>OwnerDisplayName</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
<Initiated>2022-10-17T01:56:20.000Z</Initiated>
</Upload>
</ListMultipartUploadsResult>
ListParts (max-parts facultatif)
Cette opération liste les parties importées pour une importation en plusieurs parties spécifique et renvoie un maximum par défaut de 1 000 parties importées. Vous devez inclure l'ID d'importation, qui est obtenu avec la requête CreateMultipartUpload.
Version 2 du chiffrement
L'ID d'importation renvoyé par CreateMultipartUpload ou ListMultipartUploads peut être utilisé pour cette requête.
Exemple de requête :
GET /{fully_qualified_bucket_name}/{object_name}?uploadId={uploadId}&max-parts={max-parts} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
<ListPartsResult>
<Bucket>{fully_qualified_bucket_name}</Bucket>
<Key>{object_name}</Key>
<UploadId>{uploadId}</UploadId>
<Initiator>
<ID>{canonical-user-id}</ID>
<DisplayName>InitiatorDisplayName</DisplayName>
</Initiator>
<Owner>
<ID>{canonical-owner-id}</ID>
<DisplayName>OwnerDisplayName</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
<PartNumberMarker></PartNumberMarker>
<NextPartNumberMarker></NextPartNumberMarker>
<MaxParts>{max-parts}</MaxParts>
<IsTruncated>true</IsTruncated>
<Part>
<PartNumber>2</PartNumber>
<LastModified>2022-10-17T01:56:20.000Z</LastModified>
<ETag>"7778aef8t866abc1fa1e8466f296d394"</ETag>
<Size>10485769</Size>
</Part>
<Part>
<PartNumber>3</PartNumber>
<LastModified>2022-10-17T01:56:20.000Z</LastModified>
<ETag>"aaab18db4cc2f85cedef854fccci24x8"</ETag>
<Size>10423760</Size>
</Part>
</ListPartsResult>
UploadPart
Cette opération importe une partie dans une importation en plusieurs parties pour un objet.
Version 2 du chiffrement
Pour un bucket EV2 (Encryption Version 2), vous devez utiliser l'ID renvoyé par CreateMultipartUpload. Les ID renvoyés par ListMutlipartUploads ne fonctionneront pas pour cette requête.
Exemple de requête :
PUT /{fully_qualified_bucket_name}/{object_name}?uploadId={uploadId}&partNumber={partNumber} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-Length: 345442
Content-MD5: +b9TrAB9F8ne7rJpPkqavQ==
[part data omitted, 345442 bytes of part data]
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
AbortMultipartUpload
Cette action annule une importation en plusieurs parties et invalide l'ID d'importation pour l'importation de toute partie supplémentaire. L'espace de stockage utilisé par les parties précédemment importées est libéré.
Version 2 du chiffrement
Pour un bucket EV2 (Encryption Version 2), vous pouvez utiliser l'ID renvoyé par CreateMultipartUpload ou ListMultipartUploads pour cette opération.
Exemple de requête :
DELETE /{fully_qualified_bucket_name}/{object_name}?uploadId={uploadId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-type: text/plain
Exemple de réponse (réussite) :
HTTP/1.1 204 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6C
Date: Mon, 17 Oct 2022 22:47:09 GMT
CompleteMultipartUpload
Cette opération finalise l'importation en plusieurs parties d'un objet en assemblant les parties précédemment importées.
Version 2 du chiffrement
Pour un bucket EV2 (Encryption Version 2), vous devez utiliser l'ID renvoyé par CreateMultipartUpload. Les ID renvoyés par ListMutlipartUploads ne fonctionneront PAS pour cette requête.
Pour utiliser une clé AEAD personnalisée pour le chiffrement, deux en-têtes doivent être définis :
x-amz-server-side-encryption: SSE-KMS
: indique que cette requête tente d'utiliser une clé AEAD personnalisée.x-amz-server-side-encryption-aws-kms-key-id: {custom_key_namespace}/{custom_key_name}
: spécifie la clé à utiliser. L'espace de noms de la clé doit se trouver dans le même projet que le bucket.
Exemple de requête :
POST /{fully_qualified_bucket_name}/{object_name}?uploadId={uploadId} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Content-Length: 391
Content-type: text/plain
<CompleteMultipartUpload>
<Part>
<PartNumber>1</PartNumber>
<ETag>"a54357aff0632cce46d942af68356b38"</ETag>
</Part>
<Part>
<PartNumber>2</PartNumber>
<ETag>"0c78aef83f66abc1fa1e8477f296d394"</ETag>
</Part>
<Part>
<PartNumber>3</PartNumber>
<ETag>"acbd18db4cc2f85cedef654fccc4a4d8"</ETag>
</Part>
</CompleteMultipartUpload>
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6D
Date: Mon, 17 Oct 2022 22:47:09 GMT
<CompleteMultipartUploadResult>
<Location>http://{host}/{fully_qualified_bucket_name}/{object_name}</Location>
<Bucket>{fully_qualified_bucket_name}</Bucket>
<Key>{object_name}</Key>
<ETag>"acbd18db4cc2f85cedef654fccc4a4d8"</ETag>
</CompleteMultipartUploadResult>
CopyObject
Cette opération est un type spécial de PutObject dans lequel les données sont extraites d'un objet source déjà présent dans le stockage d'objets.
Le bucket source et la clé d'objet sont spécifiés en tant que valeur de l'en-tête x-amz-copy-source
, séparés par un /
. Par exemple, pour copier l'objet images/my_image.jpg
du bucket my_bucket
, la valeur à définir est my_bucket/images/my_image.jpg
.
Version 2 du chiffrement
Pour un bucket EV2 (Encryption Version 2), cet objet source doit provenir d'un bucket Encryption V2. Dans le cas contraire, l'opération échouera.
Pour utiliser une clé AEAD personnalisée pour le chiffrement, deux en-têtes doivent être définis :
x-amz-server-side-encryption: SSE-KMS
: indique que cette requête tente d'utiliser une clé AEAD personnalisée.x-amz-server-side-encryption-aws-kms-key-id: {custom_key_namespace}/{custom_key_name}
: spécifie la clé à utiliser. L'espace de noms de la clé doit se trouver dans le même projet que le bucket.
Exemple de requête :
PUT /{fully_qualified_bucket_name}/{object_name} HTTP/1.1
Host: host
X-Amz-Copy-Source: my_bucket/images/my_image.jpg
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6C
x-amz-copy-source-version-id: 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo
Date: Mon, 17 Oct 2022 22:47:09 GMT
<CopyObjectResult>
<LastModified>2009-10-12T17:50:30.000Z</LastModified>
<ETag>"9b2cf535f27731c974343645a3985328"</ETag>
</CopyObjectResult>
UploadPartCopy
Cette opération utilise un objet déjà présent dans le stockage d'objets comme données pour une seule partie d'un import multipartie.
Le bucket source et la clé d'objet sont spécifiés en tant que valeur de l'en-tête x-amz-copy-source
, séparés par un /
. Par exemple, pour copier l'objet images/my_image.jpg
du bucket my_bucket
, la valeur à définir est my_bucket/images/my_image.jpg
.
Version 2 du chiffrement
Cette opération n'est pas compatible avec les buckets EV2 (Encryption Version 2).
Exemple de requête :
PUT /{fully_qualified_bucket_name}/{object_name}?uploadId={uploadId}&partNumber={partNumber} HTTP/1.1
Host: host
X-Amz-Copy-Source: my_bucket/images/my_image.jpg
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Exemple de réponse (réussite) :
HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIX
x-amz-request-id: B34E94CACB2CEF6C
x-amz-copy-source-version-id: 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo
Date: Mon, 17 Oct 2022 22:47:09 GMT
<CopyPartResult>
<ETag>string</ETag>
<LastModified>timestamp</LastModified>
<ChecksumCRC32>string</ChecksumCRC32>
<ChecksumCRC32C>string</ChecksumCRC32C>
<ChecksumSHA1>string</ChecksumSHA1>
<ChecksumSHA256>string</ChecksumSHA256>
</CopyPartResult>