ListObjects
Esta operação devolve alguns ou todos os objetos num bucket, até 1000.
Exemplo de pedido:
GET /{fully_qualified_bucket_name} HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Exemplo de resposta (sucesso):
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
Esta operação devolve alguns ou todos os objetos num bucket, até 1000.
Exemplo de pedido:
GET /{fully_qualified_bucket_name}?list-type=2 HTTP/1.1
Host: host
X-Amz-Date: date
X-Amz-Content-SHA256: authorization string
Exemplo de resposta (sucesso):
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 opcional)
Esta operação recupera um objeto de um bucket com um ID da versão opcional fornecido.
Exemplo de pedido:
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
Exemplo de resposta (sucesso):
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 opcional)
Esta operação devolve uma resposta positiva e o ID, o DisplayName e a Permission do proprietário do objeto, o que indica que o proprietário tem acesso total ao objeto. Para esta operação, têm de ser fornecidas credenciais de acesso para a conta.
Exemplo de pedido:
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
Exemplo de resposta (sucesso):
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 opcional)
Esta operação recupera o modo de retenção do objeto especificado e a data em que a retenção do bloqueio de objetos expira. O bucket tem de ter uma configuração de bloqueio de objetos.
Exemplo de pedido:
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)
Exemplo de resposta (sucesso):
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 opcional)
Esta operação obtém o estado de retenção legal mais recente de um objeto. O bucket tem de ter uma configuração de bloqueio de objetos.
Exemplo de pedido:
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)
Exemplo de resposta (sucesso):
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 opcional)
Esta operação usa o subrecurso de etiquetagem para devolver todas as etiquetas de um objeto. Se o parâmetro versionId não for especificado, a operação devolve todas as etiquetas da versão mais recente do objeto num bucket com controlo de versões. Se a versão atual do objeto for um marcador de eliminação, é devolvido um estado MethodNotAllowed com o cabeçalho de resposta x-amz-deletemarker definido como true.
Exemplo de pedido:
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)
Exemplo de resposta (sucesso):
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
Esta operação adiciona um objeto a um bucket. Tem de ter as autorizações de ESCRITA corretas num bucket para lhe adicionar um objeto.
Versão 2 da encriptação
Para um bucket EV2 (versão 2 da encriptação), o pedido usa uma chave AEAD predefinida para a encriptação se não forem especificadas chaves personalizadas.
Para usar uma chave AEAD personalizada para a encriptação, existem dois cabeçalhos que têm de ser definidos:
x-amz-server-side-encryption: SSE-KMS- Indica que este pedido está a tentar usar uma chave AEAD personalizada.x-amz-server-side-encryption-aws-kms-key-id: {custom_key_namespace}/{custom_key_name}- Especifica a chave destinada à utilização. O espaço de nomes da chave tem de estar no mesmo projeto que o bucket.
Exemplo de pedido:
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]
Exemplo de resposta (sucesso):
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
Esta operação usa o subrecurso de etiquetagem para adicionar um conjunto de etiquetas a um objeto existente.
Exemplo de pedido:
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>
Exemplo de resposta (sucesso):
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 opcional)
Esta operação permite-lhe eliminar vários objetos de um único bucket com um pedido. O pedido pode conter uma lista de até 1000 chaves que quer eliminar.
Exemplo de pedido:
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>
Exemplo de resposta (sucesso):
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 opcional)
Remove um objeto de um bucket. O comportamento depende do estado de controlo de versões do bucket: - Se o controlo de versões do bucket não estiver ativado, a operação elimina o objeto permanentemente. - Se o controlo de versões do bucket estiver ativado, a operação insere um marcador de eliminação, que se torna a versão atual do objeto. Para eliminar permanentemente um objeto num bucket com controlo de versões, tem de incluir o versionId do objeto no pedido.
Exemplo de pedido:
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
Exemplo de resposta (sucesso):
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 opcional)
Esta operação usa o subrecurso de etiquetagem para remover todas as etiquetas de um objeto.
Exemplo de pedido:
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
Exemplo de resposta (sucesso):
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 opcional)
A operação HEAD recupera metadados de um objeto sem devolver o próprio objeto. Esta operação é útil se estiver interessado apenas nos metadados de um objeto.
Exemplo de pedido:
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
Exemplo de resposta (sucesso):
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
Esta ação inicia um carregamento de várias partes e devolve um ID de carregamento.
Um carregamento de várias partes permite-lhe adicionar um único objeto como um conjunto de partes. Cada parte é uma porção contígua dos dados do objeto. Carregue estas partes do objeto de forma independente e por qualquer ordem.
O ID de carregamento devolvido é usado para associar todas as partes no carregamento de várias partes específico. Especifica este ID de carregamento em cada um dos pedidos de partes de carregamento subsequentes. Também usa este ID de carregamento no pedido final para concluir ou abortar o pedido de carregamento de várias partes.
Versão 2 da encriptação
O ID de carregamento devolvido para um bucket EV2(versão 2 da encriptação) só é criado uma vez. Se o ID de carregamento devolvido por esta operação for perdido, não pode ser recuperado a partir de ListMultipartUploads. No entanto, os IDs de carregamento devolvidos por ListMultipartUploads podem ser usados para AbortMultipartUpload ou ListParts. Apenas o ID devolvido por CreateMultipartUpload pode ser usado para UploadPart ou CompleteMultipartUpload.
Exemplo de pedido:
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
Exemplo de resposta (sucesso):
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 opcional)
Esta operação apresenta uma lista de carregamentos de várias partes em curso para um bucket.
Versão 2 da encriptação
Os IDs de carregamento devolvidos por esta operação só funcionam com ListParts e AbortMultipartUpload.
Exemplo de pedido:
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
Exemplo de resposta (sucesso):
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 opcional)
Esta operação apresenta uma lista das partes carregadas para um carregamento de várias partes específico e devolve um máximo predefinido de 1000 partes carregadas. Tem de incluir o ID de carregamento, que é obtido com o pedido CreateMultipartUpload.
Versão 2 da encriptação
O ID de carregamento devolvido por CreateMultipartUpload ou ListMultipartUploads pode ser usado para este pedido.
Exemplo de pedido:
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
Exemplo de resposta (sucesso):
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
Esta operação carrega uma parte num carregamento de várias partes para um objeto.
Versão 2 da encriptação
Para um bucket EV2 (versão 2 da encriptação), tem de usar o ID devolvido por CreateMultipartUpload. Os IDs devolvidos por ListMutlipartUploads não funcionam para este pedido.
Exemplo de pedido:
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]
Exemplo de resposta (sucesso):
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
Esta ação aborta um carregamento de várias partes e torna o ID de carregamento inválido para carregar partes adicionais. O armazenamento consumido por partes carregadas anteriormente é libertado.
Versão 2 da encriptação
Para um bucket EV2 (versão 2 da encriptação), pode usar o ID devolvido por CreateMultipartUpload ou ListMultipartUploads para esta operação.
Exemplo de pedido:
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
Exemplo de resposta (sucesso):
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
Esta operação conclui um carregamento de várias partes de um objeto ao juntar as partes carregadas anteriormente.
Versão 2 da encriptação
Para um bucket EV2 (versão 2 da encriptação), tem de usar o ID devolvido por CreateMultipartUpload. Os IDs devolvidos por ListMutlipartUploads NÃO funcionam para este pedido.
Para usar uma chave AEAD personalizada para a encriptação, existem dois cabeçalhos que têm de ser definidos:
x-amz-server-side-encryption: SSE-KMS- Indica que este pedido está a tentar usar uma chave AEAD personalizada.x-amz-server-side-encryption-aws-kms-key-id: {custom_key_namespace}/{custom_key_name}- Especifica a chave destinada à utilização. O espaço de nomes da chave tem de estar no mesmo projeto que o bucket.
Exemplo de pedido:
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>
Exemplo de resposta (sucesso):
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
Esta operação é um tipo especial de PutObject em que os dados são extraídos de um objeto de origem já presente no armazenamento de objetos.
O bucket de origem e a chave do objeto são especificados como o valor do x-amz-copy-source separados por um /. Por exemplo, para copiar o objeto images/my_image.jpg do bucket my_bucket, o valor a definir é my_bucket/images/my_image.jpg.
Versão 2 da encriptação
Para um bucket EV2 (versão 2 da encriptação), este objeto de origem tem de ser de um bucket de encriptação V2. Caso contrário, a operação falha.
Para usar uma chave AEAD personalizada para a encriptação, existem dois cabeçalhos que têm de ser definidos:
x-amz-server-side-encryption: SSE-KMS- Indica que este pedido está a tentar usar uma chave AEAD personalizada.x-amz-server-side-encryption-aws-kms-key-id: {custom_key_namespace}/{custom_key_name}- Especifica a chave destinada à utilização. O espaço de nomes da chave tem de estar no mesmo projeto que o bucket.
Exemplo de pedido:
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
Exemplo de resposta (sucesso):
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
Esta operação usa um objeto já presente no armazenamento de objetos como os dados de uma única parte num carregamento de várias partes.
O bucket de origem e a chave do objeto são especificados como o valor do x-amz-copy-source separados por um /. Por exemplo, para copiar o objeto images/my_image.jpg do bucket my_bucket, o valor a definir é my_bucket/images/my_image.jpg.
Versão 2 da encriptação
Esta operação não é suportada para buckets EV2 (versão 2 da encriptação).
Exemplo de pedido:
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
Exemplo de resposta (sucesso):
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>