ListObjects
Esta operação devolve alguns ou todos os objetos num contentor, 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 (com êxito):
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 contentor, 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 (com êxito):
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 obtém um objeto de um contentor 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 (com êxito):
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 autorização do proprietário do objeto, indicando que o proprietário tem acesso total ao objeto. Para esta operação, têm de ser facultadas as credenciais de acesso à 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 (com êxito):
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 obtém o modo de retenção para o objeto especificado e a data em que a retenção do Object Lock expira. O contentor 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 (com êxito):
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 contentor 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 (com êxito):
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 contentor 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 da 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 (com êxito):
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 contentor. Tem de ter as autorizações de ESCRITA corretas num contentor para lhe adicionar um objeto.
Encriptação versão 2
Para um contentor EV2 (Encryption Version 2), o pedido usa uma chave AEAD predefinida para encriptação se não forem especificadas chaves personalizadas.
Para usar uma chave AEAD personalizada para encriptação, têm de ser definidos dois cabeçalhos:
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 a utilização. O espaço de nomes da chave tem de estar no mesmo projeto que o contentor.
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 (com êxito):
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 (com êxito):
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 contentor 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 (com êxito):
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 contentor. O comportamento depende do estado de controlo de versões do contentor: - Se o controlo de versões do contentor não estiver ativado, a operação elimina permanentemente o objeto. – Se a criação de versões de contentores estiver ativada, a operação insere um marcador de eliminação, que se torna a versão atual do objeto. Para eliminar permanentemente um objeto num contentor com 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 (com êxito):
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 (com êxito):
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 obtém metadados de um objeto sem devolver o próprio objeto. Esta operação é útil se tiver interesse 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 (com êxito):
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 multipartes e devolve um ID de carregamento.
Um carregamento multipartes 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 multipartes específico. Especifica este ID de carregamento em cada um dos pedidos de parte de carregamento subsequentes. Também usa este ID de carregamento no pedido final para concluir ou anular o pedido de carregamento multipartes.
Encriptação versão 2
O ID de carregamento devolvido para um contentor EV2(versão 2 da encriptação) só é gerado uma vez. Se o ID de carregamento devolvido por esta operação for perdido, não é possível recuperá-lo a partir de ListMultipartUploads. No entanto, os IDs de carregamento devolvidos por ListMultipartUploads podem ser usados para AbortMultipartUpload ou ListParts. Só pode usar o ID devolvido por CreateMultipartUpload 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 (com êxito):
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 os carregamentos multipartes em curso para um contentor.
Encriptação versão 2
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 (com êxito):
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 lista as partes carregadas para um carregamento multipartes 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.
Encriptação versão 2
O ID de carregamento devolvido de 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 (com êxito):
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 multipartes para um objeto.
Encriptação versão 2
Para um contentor EV2 (Encryption Version 2), 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 (com êxito):
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 anula um carregamento multipartes e torna o ID de carregamento inválido para carregar partes adicionais. O armazenamento consumido por todas as partes carregadas anteriormente é libertado.
Encriptação versão 2
Para um contentor EV2 (versão 2 de 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 (com êxito):
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 multipartes de um objeto através da montagem das partes carregadas anteriormente.
Encriptação versão 2
Para um contentor EV2 (Encryption Version 2), 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 encriptação, têm de ser definidos dois cabeçalhos:
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 a utilização. O espaço de nomes da chave tem de estar no mesmo projeto que o contentor.
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 (com êxito):
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 contentor de origem e a chave do objeto são especificados como o valor do cabeçalho x-amz-copy-source, separados por um /. Por exemplo, para copiar o objeto images/my_image.jpg do contentor my_bucket, o valor a definir é my_bucket/images/my_image.jpg.
Encriptação versão 2
Para um contentor EV2 (Encryption Version 2), este objeto de origem tem de ser de um contentor Encryption V2. Caso contrário, a operação falha.
Para usar uma chave AEAD personalizada para encriptação, têm de ser definidos dois cabeçalhos:
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 a utilização. O espaço de nomes da chave tem de estar no mesmo projeto que o contentor.
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 (com êxito):
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 multipartes.
O contentor de origem e a chave do objeto são especificados como o valor do cabeçalho x-amz-copy-source, separados por um /. Por exemplo, para copiar o objeto images/my_image.jpg do contentor my_bucket, o valor a definir é my_bucket/images/my_image.jpg.
Encriptação versão 2
Esta operação não é suportada para contentores EV2 (Encryption Version 2).
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 (com êxito):
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>