Operações de objeto
Os recursos modernos do IBM Cloud® Object Storage estão convenientemente disponíveis por meio de uma API RESTful. Operações e métodos para ler, gravar e configurar objetos (armazenados em um depósito) são documentados aqui.
Para obter mais informações sobre terminais, consulte Terminais e locais de armazenamento.
Uma nota sobre a autenticação de Acesso / Chave Secreta (HMAC)
Ao autenticar em sua instância do IBM Cloud Object Storage usando credenciais HMAC, serão necessárias as informações representadas na Tabela 1 ao construir uma assinatura HMAC.
| Chave | Valor | Exemplo |
|---|---|---|
| {access_key} | Chave de acesso atribuída à sua credencial de serviço | cf4965cebe074720a4929759f57e1214 |
| {date} | A data formatada de sua solicitação (yyyymmdd) |
20180613 |
| {region} | O código do local para seu endpoint | us-padrão |
| {signature} | O hash criado usando a chave secreta, o local e a data. | ffe2b6e18f9dcc41f593f4dbb39882a6bb4d26a73a04326e62a8d344e07c1a3e |
| {timestamp} | A data e hora formatadas de sua solicitação | 20180614T001804Z |
Fazer upload de um objeto
Um PUT fornecido em um caminho para um objeto faz upload do corpo da solicitação como um objeto. Todos os objetos transferidos por upload em um único encadeamento devem ser menores do que 500 MB para minimizar o risco de interrupções
de rede (objetos que são transferidos por upload em várias partes podem ser tão grandes quanto 10 TB).
Informações de identificação pessoal (PII): ao nomear buckets ou objetos, não use nenhuma informação que possa identificar qualquer usuário (pessoa física) pelo nome, localização ou qualquer outro meio.
É possível transmitir objetos de até 5 GB usando uma única solicitação PUT. Uploads de várias partes são mais confiáveis e podem fazer upload de forma mais eficiente usando vários encadeamentos para fazer upload de partes em paralelo.
Fazer upload de objetos maiores em uma única solicitação PUT resulta nas limitações de desempenho de um único encadeamento e, no caso de qualquer falha, os uploads de encadeamento único precisarão ser tentados novamente em sua
totalidade (enquanto que, com o MPU, apenas as partes específicas que falharam precisarão ser tentadas novamente). A taxa de transferência precisa que pode ser alcançada por um único thread varia dependendo da largura de banda da rede do cliente
para o endpoint IBM Cloud, a taxa de perda de pacotes (se houver) nessa conexão, o uso de HTTP vs HTTPS, as cifras específicas usadas na conexão e os parâmetros específicos da conexão TCP (como tamanho da janela), bem como outros fatores.
Embora esses fatores possam ser otimizados para um upload de encadeamento único, as otimizações também se aplicariam igualmente a qualquer upload multiencadeado (multipartes).
Informações de identificação pessoal (PII): Ao criar buckets ou adicionar objetos, certifique-se de não usar nenhuma informação que possa identificar qualquer usuário (pessoa física) por nome, localização ou qualquer outro meio.
Sintaxe
PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Cabeçalhos opcionais
| Cabeçalho | Tipo | Descrição |
|---|---|---|
x-amz-tagging |
string | Um conjunto de tags para aplicar ao objeto, formatado como parâmetros de consulta ("SomeKey=SomeValue"). |
x-amz-object-lock-mode |
string | O valor válido é COMPLIANCE ou GOVERNANCE- necessário se x-amz-object-lock-retain-until-date estiver presente. |
x-amz-object-lock-retain-until-date |
ISO8601 Data e hora | Necessário se x-amz-object-lock-mode estiver presente.. |
x-amz-object-lock-legal-hold |
string | Os valores válidos são ON ou OFF. |
Content-MD5 |
Sequência | O hash 128-bit MD5 codificado pelo algoritmo de hash de código avançado ( Base64 ) da carga útil, que é usado como uma verificação de integridade para garantir que a carga útil não foi alterada durante o transporte. |
x-amz-checksum-crc32 |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 32 bits CRC32 do objeto. |
x-amz-checksum-crc32c |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 32 bits CRC32C do objeto. |
x-amz-checksum-crc64nvme |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 64 bits CRC64NVME do objeto. A soma de verificação CRC64NVME é sempre uma soma de verificação completa do objeto. |
x-amz-checksum-sha1 |
Sequência | Esse cabeçalho é o Base64 codificado, 160 bits SHA1 digest do objeto. |
x-amz-checksum-sha256 |
Sequência | Esse cabeçalho é o Base64 codificado, 256 bits SHA256 digest do objeto. |
x-amz-sdk-checksum-algorithm |
Sequência | Indica o algoritmo usado para criar a soma de verificação do objeto ao usar o SDK. |
x-amz-trailer |
Sequência | Indica qual cabeçalho de valor de soma de verificação será encontrado no trailer da carga útil para verificar a integridade do upload do objeto. |
Exemplo de solicitação
PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 533
The 'queen' bee is developed from larvae selected by worker bees and fed a
substance referred to as 'royal jelly' to accelerate sexual maturity. After a
short while the 'queen' is the mother of nearly every bee in the hive, and
the colony will fight fiercely to protect her.
Exemplo de solicitação
PUT /apiary/queen-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
x-amz-content-sha256: {payload_hash}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 533
The 'queen' bee is developed from larvae selected by worker bees and fed a
substance referred to as 'royal jelly' to accelerate sexual maturity. After a
short while the 'queen' is the mother of nearly every bee in the hive, and
the colony will fight fiercely to protect her.
Exemplo de resposta
HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:30:02 GMT
X-Clv-Request-Id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
ETag: "3ca744fa96cb95e92081708887f63de5"
x-amz-checksum-crc64nvme: T1r5SUWc07k=
x-amz-checksum-type: FULL_OBJECT
Content-Length: 0
Obter cabeçalhos de um objeto
Um HEAD fornecido em um caminho para um objeto recupera os cabeçalhos desse objeto.
O Etag valor retornado para objetos criptografados usando SSE-KP é o hash MD5 e do objeto original descriptografado.
Sintaxe
HEAD https://{endpoint}/{bucket-name}/{object-name} # path style
HEAD https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Cabeçalhos opcionais
| Cabeçalho | Tipo | Descrição |
|---|---|---|
x-amz-checksum-mode |
string | Indica se deve ou não incluir metadados de soma de verificação na resposta. |
Exemplo de solicitação
HEAD /apiary/soldier-bee HTTP/1.1
Authorization: Bearer {token}
Host: s3-api.sjc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net
Exemplo de solicitação
HEAD /apiary/soldier-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de resposta
HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:32:44 GMT
X-Clv-Request-Id: da214d69-1999-4461-a130-81ba33c484a6
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: da214d69-1999-4461-a130-81ba33c484a6
ETag: "37d4c94839ee181a2224d6242176c4b5"
x-amz-checksum-crc64nvme: T1r5SUWc07k=
x-amz-checksum-type: FULL_OBJECT
Content-Type: text/plain; charset=UTF-8
Last-Modified: Thu, 25 Aug 2016 17:49:06 GMT
Content-Length: 11
Fazer download de um objeto
Um GET fornecido em um caminho para um objeto faz download do objeto.
O valor Etag retornado para objetos criptografados usando SSE-C/SSE-KP não será o hash MD5 do objeto decriptografado original.
Sintaxe
GET https://{endpoint}/{bucket-name}/{object-name} # path style
GET https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Cabeçalhos opcionais
| Cabeçalho | Tipo | Descrição |
|---|---|---|
range |
Sequência | Retorna os bytes de um objeto dentro do intervalo especificado. |
x-amz-checksum-mode |
Sequência | Indica se deve ou não incluir metadados de soma de verificação na resposta. |
Exemplo de solicitação
GET /apiary/worker-bee HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
GET /apiary/worker-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de resposta
HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:34:25 GMT
X-Clv-Request-Id: 116dcd6b-215d-4a81-bd30-30291fa38f93
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 116dcd6b-215d-4a81-bd30-30291fa38f93
ETag: "d34d8aada2996fc42e6948b926513907"
Content-Type: text/plain; charset=UTF-8
Last-Modified: Thu, 25 Aug 2016 17:46:53 GMT
Content-Length: 467
Female bees that are not fortunate enough to be selected to be the 'queen'
while they were still larvae become known as 'worker' bees. These bees lack
the ability to reproduce and instead ensure that the hive functions smoothly,
acting almost as a single organism in fulfilling their purpose.
Excluir um objeto
Um DELETE fornecido em um caminho para um objeto exclui um objeto.
Sintaxe
DELETE https://{endpoint}/{bucket-name}/{object-name} # path style
DELETE https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Exemplo de solicitação
DELETE /apiary/soldier-bee HTTP/1.1
Authorization: Bearer {token}
Host: s3-api.sjc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net
Exemplo de solicitação
DELETE /apiary/soldier-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de resposta
HTTP/1.1 204 No Content
Date: Thu, 25 Aug 2016 17:44:57 GMT
X-Clv-Request-Id: 8ff4dc32-a6f0-447f-86cf-427b564d5855
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 8ff4dc32-a6f0-447f-86cf-427b564d5855
Excluir múltiplos objetos
Um POST, dado um caminho para um depósito e parâmetros adequados, exclui um conjunto especificado de objetos. Um cabeçalho Content-MD5 ou um cabeçalho checksum (incluindo x-amz-checksum-crc32,
x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1 ou x-amz-checksum-sha256) é necessário como uma verificação de integridade para a carga útil.
Cabeçalhos opcionais
| Cabeçalho | Tipo | Descrição |
|---|---|---|
Content-MD5 |
Sequência | O hash 128-bit MD5 codificado pelo algoritmo de hash de função de hash ( base64 ) da carga útil, que é usado como uma verificação de integridade para garantir que a carga útil não foi alterada durante o transporte. |
x-amz-checksum-crc32 |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 32 bits CRC32 do objeto. |
x-amz-checksum-crc32c |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 32 bits CRC32C do objeto. |
x-amz-checksum-crc64nvme |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 64 bits CRC64NVME do objeto. A soma de verificação CRC64NVME é sempre uma soma de verificação completa do objeto. |
x-amz-checksum-sha1 |
Sequência | Esse cabeçalho é o Base64 codificado, 160 bits SHA1 digest do objeto. |
x-amz-checksum-sha256 |
Sequência | Esse cabeçalho é o Base64 codificado, 256 bits SHA256 digest do objeto. |
Quando um objeto especificado na solicitação não é encontrado, o resultado é retornado como excluído.
Várias exclusões de objetos envolvem um POST operation que é cobrado como Classe A O custo da solicitação de POST para diversas exclusões varia dependendo da classe de armazenamento dos objetos e da quantia de dados
que são excluídos Para obter mais informações sobre preços, consulte a página de preços do IBM Cloud Object Storage.
Elementos opcionais
| Cabeçalho | Tipo | Descrição |
|---|---|---|
Quiet |
Booleano | Ative o modo silencioso para a solicitação. |
A solicitação pode conter um máximo de 1000 chaves que você deseja excluir. Embora isso seja útil para reduzir o número de solicitações, fique atento ao excluir muitas chaves. Além disso, leve em conta os tamanhos dos objetos para assegurar o desempenho adequado.
O código a seguir mostra um exemplo de como criar a representação necessária do conteúdo do cabeçalho:
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Sintaxe
POST https://{endpoint}/{bucket-name}?delete= # path style
POST https://{bucket-name}.{endpoint}?delete= # virtual host style
O corpo da solicitação deve conter um bloco XML com o esquema a seguir:
| Elemento | Tipo | Filhos | Antecessor | Restrição |
|---|---|---|---|---|
| Excluir | Contêiner | Object |
|
|
| Object | Contêiner | Chave | Excluir |
|
| Chave | Sequência |
|
Object | Sequência chave válida |
Exemplo de solicitação
POST /apiary?delete= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Type: text/plain; charset=utf-8
Content-MD5: xj/vf7lD7vbIe/bqHTaLvg==
Exemplo de solicitação
POST /apiary?delete= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain; charset=utf-8
Content-MD5: xj/vf7lD7vbIe/bqHTaLvg==
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de resposta
HTTP/1.1 200 OK
Date: Wed, 30 Nov 2016 18:54:53 GMT
X-Clv-Request-Id: a6232735-c3b7-4c13-a7b2-cd40c4728d51
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.137
X-Clv-S3-Version: 2.5
x-amz-request-id: a6232735-c3b7-4c13-a7b2-cd40c4728d51
Content-Type: application/xml
Content-Length: 207
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DeleteResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Deleted>
<Key>surplus-bee</Key>
</Deleted>
<Deleted>
<Key>unnecessary-bee</Key>
</Deleted>
</DeleteResult>
Adicionar ou atualizar a retenção em um objeto
Uma PUT emitida para um objeto com os parâmetros adequados adiciona ou estende o período de retenção. No COMPLIANCE modo, o período de retenção só pode ser prolongado e não pode ser encurtado ou removido. No GOVERNANCE modo, os usuários autorizados podem estender, encurtar ou remover o período de retenção incluindo o x-amz-bypass-governance-retention cabeçalho.
Sintaxe
PUT https://{endpoint}/{bucket-name}/{object-name}?retention # path style
PUT https://{bucket-name}.{endpoint}/{object-name}?retention # virtual host style
Elementos de carga útil
O corpo da solicitação deve conter um bloco XML com o esquema a seguir:
| Elemento | Tipo | Filhos | Antecessor | Notas |
|---|---|---|---|---|
| Retenção | Contêiner | Modo, RetainUntilDate |
|
Obrigatório |
| Modo | Sequência |
|
Retenção | Obrigatório - o valor válido é COMPLIANCE ou GOVERNANCE |
| RetainUntilDate | Registro de data e hora |
|
Retenção | Obrigatório |
Cabeçalhos opcionais
| Cabeçalho | Tipo | Descrição |
|---|---|---|
x-amz-bypass-governance-retention |
Sequência | Este cabeçalho permite que usuários autorizados substituam as configurações de retenção do modo GOVERNANCE para excluir ou modificar um objeto antes de sua data de retenção. |
O código a seguir mostra um exemplo de como criar a representação necessária do conteúdo do cabeçalho:
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Exemplo de solicitação
Este é um exemplo de como incluir ou estender a retenção em um objeto
PUT /apiary/myObject?retention HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Content-MD5: cDeRJIdLuEXWmLpA79K2kg==
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 119
<Retention>
<Mode>COMPLIANCE</Mode>
<RetainUntilDate>2023-04-12T23:01:00.000Z</RetainUntilDate>
</Retention>
Exemplo de resposta
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 0
Copiar um objeto
Um PUT, dado um caminho para um novo objeto, cria uma nova cópia de outro objeto especificado pelo cabeçalho x-amz-copy-source. A menos que alterados de outra forma, os metadados permanecem os mesmos.
Informações de identificação pessoal (PII): ao nomear buckets ou objetos, não use nenhuma informação que possa identificar qualquer usuário (pessoa física) pelo nome, localização ou qualquer outro meio.
Copiar objetos (mesmo entre locais) não incorre em encargos de largura da banda de saída pública. Todos os dados permanecem na rede interna do COS.
Sintaxe
PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Cabeçalhos opcionais
| Cabeçalho | Tipo | Descrição |
|---|---|---|
x-amz-metadata-directive |
sequência (COPY ou REPLACE) |
Um REPLACE sobrescreve metadados originais por novos metadados fornecidos. |
x-amz-tagging |
string | Um conjunto de tags para aplicar ao objeto, formatado como parâmetros de consulta ("SomeKey=SomeValue"). |
x-amz-tagging-directive |
sequência (COPY ou REPLACE) |
A REPLACE substitui as tags originais pelas novas tags fornecidas. |
x-amz-copy-source-if-match |
Sequência (ETag) |
Cria uma cópia caso o ETag especificado corresponda ao objeto de origem. |
x-amz-copy-source-if-none-match |
Sequência (ETag) |
Cria uma cópia caso o ETag especificado seja diferente do objeto de origem. |
x-amz-copy-source-if-unmodified-since |
Sequência (registro de data e hora) | Cria uma cópia caso o objeto de origem não tenha sido modificado desde a data especificada. A data deve ser uma data de HTTP válida (por exemplo, Wed, 30 Nov 2016 20:21:38 GMT). |
x-amz-copy-source-if-modified-since |
Sequência (registro de data e hora) | Cria uma cópia caso o objeto de origem tenha sido modificado desde a data especificada. A data deve ser uma data de HTTP válida (por exemplo, Wed, 30 Nov 2016 20:21:38 GMT). |
x-amz-checksum-algorithm |
Sequência | Indica qual algoritmo de soma de verificação será usado para criar a soma de verificação do objeto de destino. |
Exemplo de solicitação
Este exemplo básico usa o objeto bee do depósito garden e cria uma cópia no depósito apiary com a nova chave wild-bee.
PUT /apiary/wild-bee HTTP/1.1
Authorization: Bearer {token}
x-amz-copy-source: /garden/bee
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
PUT /apiary/wild-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
x-amz-copy-source: /garden/bee
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de resposta
HTTP/1.1 200 OK
Date: Wed, 30 Nov 2016 19:52:52 GMT
X-Clv-Request-Id: 72992a90-8f86-433f-b1a4-7b1b33714bed
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.137
X-Clv-S3-Version: 2.5
x-amz-request-id: 72992a90-8f86-433f-b1a4-7b1b33714bed
ETag: "853aab195ce770b0dfb294a4e9467e62"
Content-Type: application/xml
Content-Length: 240
<CopyObjectResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<LastModified>2016-11-30T19:52:53.125Z</LastModified>
<ETag>"853aab195ce770b0dfb294a4e9467e62"</ETag>
</CopyObjectResult>
Verificar a configuração de CORS de um objeto
Uma OPTIONS, dado um caminho para um objeto junto com uma origem e um tipo de solicitação, verifica se esse objeto está acessível nessa origem usando esse tipo de solicitação. Ao contrário de todas as outras solicitações, uma solicitação
de OPTIONS não requer os cabeçalhos authorization ou x-amx-date.
Sintaxe
OPTIONS https://{endpoint}/{bucket-name}/{object-name} # path style
OPTIONS https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Exemplo de solicitação
OPTIONS /apiary/queen-bee HTTP/1.1
Access-Control-Request-Method: PUT
Origin: http://ibm.com
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
OPTIONS /apiary/queen-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Access-Control-Request-Method: PUT
Origin: http://ibm.com
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de resposta
HTTP/1.1 200 OK
Date: Wed, 07 Dec 2016 16:23:14 GMT
X-Clv-Request-Id: 9a2ae3e1-76dd-4eec-a8f2-1a7f60f63483
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.137
X-Clv-S3-Version: 2.5
x-amz-request-id: 9a2ae3e1-76dd-4eec-a8f2-1a7f60f63483
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: PUT
Access-Control-Allow-Credentials: true
Vary: Origin, Access-Control-Request-Headers, Access-Control-Allow-Methods
Content-Length: 0
Fazendo upload de objetos em múltiplas partes
Ao trabalhar com objetos maiores, as operações de upload de múltiplas partes são recomendadas para gravar objetos no IBM Cloud® Object Storage. Um upload de um único objeto pode ser executado como um conjunto de partes e essas partes podem ser transferidas por upload independentemente em qualquer ordem e em paralelo. Após a conclusão do upload, o Object Storage então apresenta todas as partes como um único objeto. Isso fornece muitos benefícios: as interrupções de rede não fazem com que grandes uploads falhem, os uploads podem ser pausados e reiniciados ao longo do tempo e os objetos podem ser transferidos por upload conforme eles estão sendo criados.
Os uploads de múltiplas partes estão disponíveis somente para objetos maiores que 5 MB. Para objetos menores que 50 GB, um tamanho de parte de 20 MB a 100 MB é recomendado para desempenho ideal. Para objetos maiores, o tamanho da parte pode ser aumentado sem impacto significativo no desempenho.
Devido à complexidade adicional envolvida, recomenda-se que os desenvolvedores usem uma biblioteca que forneça suporte de upload de múltiplas partes.
Os uploads de múltiplas partes incompletos persistem até que o objeto seja excluído ou o upload de múltiplas partes seja interrompido com AbortIncompleteMultipartUpload. Se um upload de múltiplas partes incompleto não for interrompido,
o upload parcial continuará a usar recursos. As interfaces devem ser projetadas tendo esse ponto em mente e limpar os uploads de múltiplas partes incompletos.
Há três fases para fazer upload de um objeto em múltiplas partes:
- O upload é iniciado e um
UploadIdé criado. - As partes individuais são transferidas por upload especificando seus números de partes sequenciais e o
UploadIdpara o objeto. - Quando todas as partes terminarem o upload, ele será concluído enviando uma solicitação com o
UploadIde um bloco XML listando cada número de parte e seu respectivo valorEtag.
Iniciar um upload de múltiplas partes
Um POST emitido para um objeto com o parâmetro de consulta upload cria um novo valor UploadId, que é, então, referenciado por cada parte do objeto que está sendo transferido por upload.
Informações de identificação pessoal (PII): ao nomear buckets ou objetos, não use nenhuma informação que possa identificar qualquer usuário (pessoa física) pelo nome, localização ou qualquer outro meio.
Sintaxe
POST https://{endpoint}/{bucket-name}/{object-name}?uploads= # path style
POST https://{bucket-name}.{endpoint}/{object-name}?uploads= # virtual host style
Cabeçalhos opcionais
| Cabeçalho | Tipo | Descrição |
|---|---|---|
x-amz-checksum-algorithm |
Sequência | Indica qual algoritmo de soma de verificação será usado para criar a soma de verificação para todo o objeto multiplart. |
x-amz-checksum-type |
Sequência | Indica qual tipo de soma de verificação será usado para criar a soma de verificação para todo o objeto multiplart. |
Exemplo de solicitação
POST /some-bucket/multipart-object-123?uploads= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
POST /some-bucket/multipart-object-123?uploads= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de resposta
HTTP/1.1 200 OK
Date: Fri, 03 Mar 2017 20:34:12 GMT
X-Clv-Request-Id: 258fdd5a-f9be-40f0-990f-5f4225e0c8e5
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
Content-Type: application/xml
Content-Length: 276
<InitiateMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Bucket>some-bucket</Bucket>
<Key>multipart-object-123</Key>
<UploadId>0000015a-95e1-4326-654e-a1b57887784f</UploadId>
</InitiateMultipartUploadResult>
Fazer upload de uma parte
Uma solicitação PUT que é emitida para um objeto com parâmetros de consulta partNumber e uploadId fará upload de uma parte de um objeto. As partes podem ser transferidas por upload em série ou em paralelo,
mas devem ser numeradas em ordem.
Informações de identificação pessoal (PII): ao nomear buckets ou objetos, não use nenhuma informação que possa identificar qualquer usuário (pessoa física) pelo nome, localização ou qualquer outro meio.
Sintaxe
PUT https://{endpoint}/{bucket-name}/{object-name}?partNumber={sequential-integer}&uploadId={uploadId}= # path style
PUT https://{bucket-name}.{endpoint}/{object-name}?partNumber={sequential-integer}&uploadId={uploadId}= # virtual host style
Cabeçalhos opcionais
| Cabeçalho | Tipo | Descrição |
|---|---|---|
Content-MD5 |
Sequência | O hash 128-bit MD5 codificado pelo algoritmo de hash de código avançado ( Base64 ) da carga útil, que é usado como uma verificação de integridade para garantir que a carga útil não foi alterada durante o transporte. |
x-amz-checksum-crc32 |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 32 bits CRC32 do objeto. |
x-amz-checksum-crc32c |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 32 bits CRC32C do objeto. |
x-amz-checksum-crc64nvme |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 64 bits CRC64NVME do objeto. A soma de verificação CRC64NVME é sempre uma soma de verificação completa do objeto. |
x-amz-checksum-sha1 |
Sequência | Esse cabeçalho é o Base64 codificado, 160 bits SHA1 digest do objeto. |
x-amz-checksum-sha256 |
Sequência | Esse cabeçalho é o Base64 codificado, 256 bits SHA256 digest do objeto. |
x-amz-sdk-checksum-algorithm |
Sequência | Indica o algoritmo usado para criar a soma de verificação do objeto ao usar o SDK. |
x-amz-trailer |
Sequência | Indica qual cabeçalho de valor de soma de verificação será encontrado no trailer da carga útil para verificar a integridade do upload do objeto. |
Exemplo de solicitação
PUT /some-bucket/multipart-object-123?partNumber=1&uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/pdf
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 13374550
Exemplo de solicitação
PUT /some-bucket/multipart-object-123?partNumber=1&uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-PAYLOAD
Content-Encoding: aws-chunked
x-amz-decoded-content-length: 13374550
Content-Type: application/pdf
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 13374550
Exemplo de resposta
HTTP/1.1 200 OK
Date: Sat, 18 Mar 2017 03:56:41 GMT
X-Clv-Request-Id: 17ba921d-1c27-4f31-8396-2e6588be5c6d
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
ETag: "7417ca8d45a71b692168f0419c17fe2f"
Content-Length: 0
Listar partes
Um GET, dado um caminho para um objeto de múltiplas partes com um UploadID ativo especificado como um parâmetro de consulta, retorna uma lista de todas as partes do objeto.
Sintaxe
GET https://{endpoint}/{bucket-name}/{object-name}?uploadId={uploadId} # path style
GET https://{bucket-name}.{endpoint}/{object-name}?uploadId={uploadId} # virtual host style
Parâmetros de consulta
| Parâmetro | Obrigatório? | Tipo | Descrição |
|---|---|---|---|
uploadId |
Necessário | sequência | ID de upload retornado ao inicializar um upload de várias partes |
max-parts |
Opcional | sequência | Padrões para 1.000. |
part-number-marker |
Opcional | string | Define onde a lista de partes começa. |
Exemplo de solicitação
GET /farm/spaceship?uploadId=01000162-3f46-6ab8-4b5f-f7060b310f37 HTTP/1.1
Authorization: bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
GET /farm/spaceship?uploadId=01000162-3f46-6ab8-4b5f-f7060b310f37 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de resposta
HTTP/1.1 200 OK
Date: Mon, 19 Mar 2018 17:21:08 GMT
X-Clv-Request-Id: 6544044d-4f88-4bb6-9ee5-bfadf5023249
Server: Cleversafe/3.12.4.20
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
Content-Type: application/xml
Content-Length: 743
<ListPartsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Bucket>farm</Bucket>
<Key>spaceship</Key>
<UploadId>01000162-3f46-6ab8-4b5f-f7060b310f37</UploadId>
<Initiator>
<ID>d6f04d83-6c4f-4a62-a165-696756d63903</ID>
<DisplayName>d6f04d83-6c4f-4a62-a165-696756d63903</DisplayName>
</Initiator>
<Owner>
<ID>d6f04d83-6c4f-4a62-a165-696756d63903</ID>
<DisplayName>d6f04d83-6c4f-4a62-a165-696756d63903</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
<MaxParts>1000</MaxParts>
<IsTruncated>false</IsTruncated>
<Part>
<PartNumber>1</PartNumber>
<LastModified>2018-03-19T17:20:35.482Z</LastModified>
<ETag>"bb03cf4fa8603fe407a65ee1dba55265"</ETag>
<Size>7128094</Size>
</Part>
</ListPartsResult>
Concluir um upload de múltiplas partes
Uma solicitação POST que é emitida para um objeto com o parâmetro de consulta uploadId e o bloco XML apropriado no corpo concluirá um upload de múltiplas partes.
Sintaxe
POST https://{endpoint}/{bucket-name}/{object-name}?uploadId={uploadId}= # path style
POST https://{bucket-name}.{endpoint}/{object-name}?uploadId={uploadId}= # virtual host style
Cabeçalhos opcionais
| Cabeçalho | Tipo | Descrição |
|---|---|---|
x-amz-checksum-crc32 |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 32 bits CRC32 do objeto. |
x-amz-checksum-crc32c |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 32 bits CRC32C do objeto. |
x-amz-checksum-crc64nvme |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 64 bits CRC64NVME do objeto. A soma de verificação CRC64NVME é sempre uma soma de verificação completa do objeto. |
x-amz-checksum-sha1 |
Sequência | Esse cabeçalho é o Base64 codificado, 160 bits SHA1 digest do objeto. |
x-amz-checksum-sha256 |
Sequência | Esse cabeçalho é o Base64 codificado, 256 bits SHA256 digest do objeto. |
x-amz-checksum-type |
Sequência | Indica qual tipo de soma de verificação será usado para criar a soma de verificação para todo o objeto multiplart. |
O corpo da solicitação deve conter um bloco XML com o esquema a seguir:
| Elemento | Tipo | Filhos | Antecessor | Restrição |
|---|---|---|---|---|
| CompleteMultipartUpload | Contêiner | Peça |
|
|
| Peça | Contêiner | PartNumber, ETag |
Excluir |
|
| PartNumber | Sequência |
|
Object | Número de peça válido |
ETag |
Sequência |
|
Object | Sequência de valor ETag válida |
<CompleteMultipartUpload>
<Part>
<PartNumber>{sequential part number}</PartNumber>
<ETag>{ETag value from part upload response header}</ETag>
</Part>
</CompleteMultipartUpload>
Exemplo de solicitação
POST /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 257
Exemplo de solicitação
POST /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 257
<CompleteMultipartUpload>
<Part>
<PartNumber>1</PartNumber>
<ETag>"7417ca8d45a71b692168f0419c17fe2f"</ETag>
</Part>
<Part>
<PartNumber>2</PartNumber>
<ETag>"7417ca8d45a71b692168f0419c17fe2f"</ETag>
</Part>
</CompleteMultipartUpload>
Exemplo de resposta
HTTP/1.1 200 OK
Date: Fri, 03 Mar 2017 19:18:44 GMT
X-Clv-Request-Id: c8be10e7-94c4-4c03-9960-6f242b42424d
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
ETag: "765ba3df36cf24e49f67fc6f689dfc6e-2"
Content-Type: application/xml
Content-Length: 364
<CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Location>http://s3.us.cloud-object-storage.appdomain.cloud/zopse/multipart-object-123</Location>
<Bucket>some-bucket</Bucket>
<Key>multipart-object-123</Key>
<ETag>"765ba3df36cf24e49f67fc6f689dfc6e-2"</ETag>
</CompleteMultipartUploadResult>
Interromper uploads de múltiplas partes incompletos
Uma solicitação DELETE emitida para um objeto com o parâmetro de consulta uploadId exclui todas as partes não concluídas de um upload de múltiplas partes.
Sintaxe
DELETE https://{endpoint}/{bucket-name}/{object-name}?uploadId={uploadId}= # path style
DELETE https://{bucket-name}.{endpoint}/{object-name}?uploadId={uploadId}= # virtual host style
Exemplo de solicitação
DELETE /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
DELETE /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de resposta
HTTP/1.1 204 No Content
Date: Thu, 16 Mar 2017 22:07:48 GMT
X-Clv-Request-Id: 06d67542-6a3f-4616-be25-fc4dbdf242ad
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
Restaurar temporariamente um objeto arquivado
Uma solicitação POST que é emitida para um objeto com o parâmetro de consulta restore para solicitar a restauração temporária de um objeto arquivado. Um cabeçalho Content-MD5 ou um cabeçalho checksum (incluindo x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1 ou x-amz-checksum-sha256) é necessário como uma verificação de integridade
para a carga útil.
Um objeto arquivado deve ser restaurado antes de fazer download ou modificar o objeto. O tempo de vida do objeto deve ser especificado, após o qual a cópia temporária do objeto será excluída.
Para depósitos com uma classe de armazenamento de transição de política de ciclo de vida GLACIER, pode haver um atraso de até 12 horas antes que a cópia restaurada esteja disponível para acesso. Se a classe de armazenamento de transição
foi configurada como ACCELERATED, pode haver um atraso de até duas (2) horas antes que o objeto restaurado esteja disponível. Uma solicitação de HEAD pode verificar se a cópia restaurada está disponível.
Para restaurar permanentemente o objeto, ele deve ser copiado para um depósito que não tenha uma configuração de ciclo de vida ativa.
Sintaxe
POST https://{endpoint}/{bucket-name}/{object-name}?restore # path style
POST https://{bucket-name}.{endpoint}/{object-name}?restore # virtual host style
Elementos de carga útil
O corpo da solicitação deve conter um bloco XML com o esquema a seguir:
| Elemento | Tipo | Filhos | Antecessor | Restrição |
|---|---|---|---|---|
| RestoreRequest | Contêiner | Days, GlacierJobParameters | Nenhum | Nenhum |
| Dias | Integer | Nenhum | RestoreRequest | Especificado o tempo de vida do objeto temporariamente restaurado. O número mínimo de dias para que uma cópia restaurada do objeto possa existir é 1. Após o período de restauração, a cópia temporária do objeto será removida. |
| GlacierJobParameters | Sequência | Camada | RestoreRequest | Nenhum |
| Camada | Sequência | Nenhum | GlacierJobParameters | Opcional e, se for deixado em branco, o padrão será o valor associado à camada de armazenamento da política que estava em vigor quando o objeto foi gravado. Se esse valor não for deixado em branco, ele deverá ser configurado
como Bulk se a classe de armazenamento de transição para a política de ciclo de vida do depósito foi configurada como GLACIER e deverá ser configurado como Accelerated se a classe
de armazenamento de transição foi configurada como ACCELERATED. |
| Cabeçalho | Tipo | Descrição |
|---|---|---|
Content-MD5 |
Sequência | O hash 128-bit MD5 codificado pelo algoritmo de hash de função de hash ( base64 ) da carga útil, que é usado como uma verificação de integridade para garantir que a carga útil não foi alterada durante o transporte. |
x-amz-checksum-crc32 |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 32 bits CRC32 do objeto. |
x-amz-checksum-crc32c |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 32 bits CRC32C do objeto. |
x-amz-checksum-crc64nvme |
Sequência | Esse cabeçalho é a soma de verificação Base64 codificada e de 64 bits CRC64NVME do objeto. A soma de verificação CRC64NVME é sempre uma soma de verificação completa do objeto. |
x-amz-checksum-sha1 |
Sequência | Esse cabeçalho é o Base64 codificado, 160 bits SHA1 digest do objeto. |
x-amz-checksum-sha256 |
Sequência | Esse cabeçalho é o Base64 codificado, 256 bits SHA256 digest do objeto. |
<RestoreRequest>
<Days>{integer}</Days>
<GlacierJobParameters>
<Tier>Bulk</Tier>
</GlacierJobParameters>
</RestoreRequest>
Exemplo de solicitação
POST /apiary/queenbee?restore HTTP/1.1
Authorization: {authorization-string}
Content-Type: text/plain
Content-MD5: rgRRGfd/OytcM7O5gIaQ==
Content-Length: 305
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
POST /apiary/queenbee?restore HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-MD5: rgRRGfd/OytcM7O5gIaQ==
Content-Length: 305
Host: s3.us.cloud-object-storage.appdomain.cloud
<RestoreRequest>
<Days>3</Days>
<GlacierJobParameters>
<Tier>Bulk</Tier>
</GlacierJobParameters>
</RestoreRequest>
Exemplo de resposta
HTTP/1.1 202 Accepted
Date: Thu, 16 Mar 2017 22:07:48 GMT
X-Clv-Request-Id: 06d67542-6a3f-4616-be25-fc4dbdf242ad
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
Atualizando metadados
Há duas maneiras de atualizar os metadados em um objeto existente:
- Uma solicitação
PUTcom os novos metadados e o conteúdo do objeto original - Executando uma solicitação
COPYcom os novos metadados especificando o objeto original como a origem da cópia
Todas as chaves de metadados devem ser prefixadas com x-amz-meta-
Usando PUT para atualizar metadados
A PUT solicitação requer uma cópia do objeto existente, pois o conteúdo será substituído.
Sintaxe
PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Exemplo de solicitação
PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-meta-key1: value1
x-amz-meta-key2: value2
Content-Length: 533
The 'queen' bee is developed from larvae selected by worker bees and fed a
substance referred to as 'royal jelly' to accelerate sexual maturity. After a
short while the 'queen' is the mother of nearly every bee in the hive, and
the colony will fight fiercely to protect her.
Exemplo de solicitação
PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-meta-key1: value1
x-amz-meta-key2: value2
Content-Length: 533
The 'queen' bee is developed from larvae selected by worker bees and fed a
substance referred to as 'royal jelly' to accelerate sexual maturity. After a
short while the 'queen' is the mother of nearly every bee in the hive, and
the colony will fight fiercely to protect her.
Exemplo de resposta
HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:30:02 GMT
X-Clv-Request-Id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
ETag: "3ca744fa96cb95e92081708887f63de5"
Content-Length: 0
Usando COPY para atualizar metadados
Os detalhes completos sobre a solicitação de COPY estão aqui
Sintaxe
PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Exemplo de solicitação
PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-copy-source: /apiary/queen-bee
x-amz-metadata-directive: REPLACE
x-amz-meta-key1: value1
x-amz-meta-key2: value2
Exemplo de solicitação
PUT /apiary/queen-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-copy-source: /apiary/queen-bee
x-amz-metadata-directive: REPLACE
x-amz-meta-key1: value1
x-amz-meta-key2: value2
Exemplo de resposta
HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:30:02 GMT
X-Clv-Request-Id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
ETag: "3ca744fa96cb95e92081708887f63de5"
Content-Length: 0
Próximas etapas
Saiba mais sobre as operações do depósito na documentação