Operações de depósito
Os recursos modernos do IBM Cloud® Object Storage estão convenientemente disponíveis por meio de uma API RESTful. Operações e métodos que são usados para interagir com depósitos (em que os objetos são armazenados) são documentados aqui.
Para obter mais informações sobre as permissões e o acesso, consulte Permissões do depósito
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, você precisa das informações que são 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-standard |
| {signature} | O hash que é criado usando a chave secreta, o local e a data | ffe2b6e18f9dcc41f593f4dbb39882a6bb4d26a73a04326e62a8d344e07c1a3e |
| {timestamp} | A data e hora formatadas de sua solicitação | 20180614T001804Z |
Listar depósitos
Uma solicitação GET enviada para a raiz do endpoint retorna uma lista de buckets associados à instância do serviço especificada. Para obter mais informações sobre terminais, consulte Terminais e locais de armazenamento.
| Cabeçalho | Tipo | Obrigatório? | Descrição |
|---|---|---|---|
ibm-service-instance-id |
Sequência | True | Lista os depósitos que foram criados nessa instância de serviço. |
| Parâmetro de consulta | Valor | Obrigatório? | Descrição |
|---|---|---|---|
extended |
Nenhum | Não | Fornece metadados de LocationConstraint e CreationTemplateId na listagem. |
Sintaxe
GET https://{endpoint}/
Exemplo de solicitação
GET / HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Exemplo de solicitação
GET / 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
Exemplo de resposta
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<Buckets>
<Bucket>
<Name>bucket-27200-lwx4cfvcue</Name>
<CreationDate>2016-08-18T14:21:36.593Z</CreationDate>
</Bucket>
<Bucket>
<Name>bucket-27590-drqmydpfdv</Name>
<CreationDate>2016-08-18T14:22:32.366Z</CreationDate>
</Bucket>
<Bucket>
<Name>bucket-27852-290jtb0n2y</Name>
<CreationDate>2016-08-18T14:23:03.141Z</CreationDate>
</Bucket>
<Bucket>
<Name>bucket-28731-k0o1gde2rm</Name>
<CreationDate>2016-08-18T14:25:09.599Z</CreationDate>
</Bucket>
</Buckets>
</ListAllMyBucketsResult>
Obtendo uma listagem ampliada
Sintaxe
GET https://{endpoint}/?extended
Exemplo de solicitação
GET /?extended HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Exemplo de solicitação
GET /?extended 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
Exemplo de resposta
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<IsTruncated>false</IsTruncated>
<MaxKeys>1000</MaxKeys>
<Prefix/>
<Marker/>
<Buckets>
<Bucket>
<Name>bucket-27200-lwx4cfvcue</Name>
<CreationDate>2016-08-18T14:21:36.593Z</CreationDate>
<LocationConstraint>us-south-standard</LocationConstraint>
</Bucket>
<Bucket>
<Name>bucket-27590-drqmydpfdv</Name>
<CreationDate>2016-08-18T14:22:32.366Z</CreationDate>
<LocationConstraint>us-standard</LocationConstraint>
</Bucket>
<Bucket>
<Name>bucket-27852-290jtb0n2y</Name>
<CreationDate>2016-08-18T14:23:03.141Z</CreationDate>
<LocationConstraint>eu-standard</LocationConstraint>
</Bucket>
<Bucket>
<Name>bucket-28731-k0o1gde2rm</Name>
<CreationDate>2016-08-18T14:25:09.599Z</CreationDate>
<LocationConstraint>us-cold</LocationConstraint>
</Bucket>
</Buckets>
</ListAllMyBucketsResult>
Criar um depósito
Uma solicitação do PUT que é enviada para a raiz do terminal e seguida por uma sequência cria um depósito. Para obter mais informações sobre terminais, consulte Terminais e locais de armazenamento.
Os nomes dos buckets devem ser globalmente exclusivos e estar em conformidade com o DNS. Os nomes entre 3 e 63 caracteres de comprimento devem ser compostos por letras minúsculas, números, pontos (pontos) e traços (hífens) Os depósitos devem
receber nomes que comecem e terminem com uma letra minúscula ou com um número. Os nomes de depósito não podem conter pontos ou traços consecutivos Não são permitidos nomes de buckets que se assemelhem a endereços IP. Esta operação não usa
os parâmetros de consulta específicos da operação
Os nomes dos depósitos devem ser exclusivos, pois todos os depósitos na nuvem pública compartilham um namespace global. Essa exigência permite o acesso a um bucket sem a necessidade de fornecer informações sobre instâncias de serviço ou contas.
Também não é possível criar um depósito com um nome que se inicie com cosv1- ou account-, pois esses prefixos são reservados pelo sistema.
| Cabeçalho | Tipo | Obrigatório? | Descrição |
|---|---|---|---|
ibm-service-instance-id |
Sequência | True | Este cabeçalho faz referência à instância do serviço na qual o bucket será criado e à qual o uso de dados poderá ser cobrado. |
x-amz-bucket-object-lock-enabled |
Booleano | Não | Especifica se você deseja ativar o Object Lock no novo depósito. Esse cabeçalho ativa automaticamente a versão. |
Ao configurar o Bloqueio de Objeto em um novo depósito, assegure que nenhum erro tipográfico esteja no cabeçalho x-amz-bucket-object-lock-enabled. Se o cabeçalho ou o valor for digitado incorretamente, o depósito será criado, mas
o Bloqueio e a Versão do Objeto não serão ativados.
Informações de Identificação Pessoal (PII): Ao criar buckets ou adicionar objetos, não utilize nenhuma informação que possa identificar qualquer usuário (pessoa física) por nome, localização ou qualquer outro meio no nome do bucket ou do objeto.
Sintaxe
PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style
Exemplo de solicitação
O exemplo a seguir cria um depósito chamado 'images'.
PUT /images HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Exemplo de solicitação
PUT /images 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
Exemplo de resposta
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:45:25 GMT
X-Clv-Request-Id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Content-Length: 0
Criar um depósito com uma classe de armazenamento diferente
Para criar um bucket com uma classe de armazenamento diferente, envie um bloco XML que especifique uma configuração de bucket com o parâmetro LocationConstraint definido como {provisioning code} no corpo de uma solicitação PUT para um endpoint do bucket. Para obter mais informações sobre terminais, consulte Terminais e locais de armazenamento.
Regras de nomenclatura do depósito padrão. Esta operação não usa os parâmetros de consulta específicos da operação
| | Cabeçalho | Tipo | Descrição | |--------------------------|--------|--------------------------------------------------------------------------------------------------------------------- | ibm-service-instance-id | Sequência
| Este cabeçalho faz referência à instância do serviço na qual o bucket será criado e à qual o uso de dados poderá ser cobrado. |
Sintaxe
PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style
O corpo da solicitação deve conter um bloco XML com o esquema a seguir:
| Elemento | Tipo | Filhos | Antecessor | Restrição |
|---|---|---|---|---|
CreateBucketConfiguration |
Contêiner | LocationConstraint |
|
|
LocationConstraint |
Sequência |
|
CreateBucketConfiguration |
Código do local válido |
<CreateBucketConfiguration>
<LocationConstraint>us-vault</LocationConstraint>
</CreateBucketConfiguration>
Uma lista de códigos de fornecimento válidos para LocationConstraint pode ser referenciada no guia de Classes de armazenamento.
Exemplo de solicitação
O exemplo a seguir cria um depósito chamado 'vault-images'.
PUT /vault-images HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Content-Length: 110
Exemplo de solicitação
PUT /vault-images 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
<CreateBucketConfiguration>
<LocationConstraint>us-vault</LocationConstraint>
</CreateBucketConfiguration>
Exemplo de resposta
HTTP/1.1 200 OK
Date: Fri, 17 Mar 2017 17:52:17 GMT
X-Clv-Request-Id: b6483b2c-24ae-488a-884c-db1a93b9a9a6
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
Content-Length: 0
Crie um bucket com chaves de criptografia gerenciadas (SSE-KP) do Key Protect ou do Hyper Protect Crypto Services
Para criar um depósito no qual as chaves de criptografia são gerenciadas por Key Protect ou Hyper Protect Crypto Services, é necessário ter acesso a uma instância de serviço ativa do Key Protect ou Hyper Protect Crypto Services. Esta operação não usa os parâmetros de consulta específicos da operação
Para obter mais informações sobre como usar o Key Protect para gerenciar suas chaves de criptografia, consulte a documentação em Key Protect.
Para obter mais informações sobre Hyper Protect Crypto Services, consulte a documentação.
A criptografia gerenciada para um bucket entre regiões deve usar uma chave raiz de uma instância do Key Protect no local de alta disponibilidade mais próximo (us-south ou jp-tok).
| Cabeçalho | Tipo | Descrição |
|---|---|---|
ibm-service-instance-id |
Sequência | Este cabeçalho faz referência à instância do serviço na qual o bucket será criado e à qual o uso de dados poderá ser cobrado. |
ibm-sse-kp-encryption-algorithm |
Sequência | Este cabeçalho é usado para especificar o algoritmo e o tamanho da chave a ser utilizado com a chave de criptografia armazenada por meio de Key Protect. Esse valor deve ser configurado como a sequência AES256. |
ibm-sse-kp-customer-root-key-crn |
Sequência | Este cabeçalho é usado para indicar a chave raiz específica utilizada por Key Protect ou Hyper Protect Crypto Services para criptografar este bucket. Esse valor deve ser o CRN integral da chave raiz. |
Sintaxe
PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style
Exemplo de solicitação
O exemplo a seguir cria um depósito chamado 'secure-files'.
PUT /secure-files HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us-south.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net
ibm-service-instance-id: {ibm-service-instance-id}
ibm-sse-kp-encryption-algorithm: "AES256"
ibm-sse-kp-customer-root-key-crn: {customer-root-key-id}
Exemplo de solicitação
PUT /secure-files 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
ibm-sse-kp-encryption-algorithm: "AES256"
ibm-sse-kp-customer-root-key-crn: {customer-root-key-id}
Exemplo de resposta
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:45:25 GMT
X-Clv-Request-Id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Content-Length: 0
Recuperar os cabeçalhos de um depósito
Uma chamada HEAD feita para um bucket retorna os cabeçalhos desse bucket.
As solicitações de HEAD não retornam um corpo e, portanto, não podem retornar mensagens de erro específicas, como NoSuchBucket, somente NotFound.
Sintaxe
HEAD https://{endpoint}/{bucket-name} # path style
HEAD https://{bucket-name}.{endpoint} # virtual host style
Exemplo de solicitação
O exemplo a seguir busca os cabeçalhos do depósito 'images'.
HEAD /images HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization:Bearer {token}
Exemplo de solicitação
HEAD /images 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
Exemplo de resposta
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:46:35 GMT
X-Clv-Request-Id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Content-Length: 0
Exemplo de solicitação
HEAD As solicitações em buckets com criptografia do tipo “ Key Protect ” retornam cabeçalhos adicionais.
HEAD /secure-files HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization:Bearer {token}
Exemplo de solicitação
HEAD /secure-files 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
Exemplo de resposta
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:46:35 GMT
X-Clv-Request-Id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Content-Length: 0
ibm-sse-kp-enabled: True
ibm-sse-kp-crk-id: {customer-root-key-id}
Listar objetos em um bucket específico (Versão 2)
Uma solicitação do tipo “ GET ” direcionada a um bucket retorna uma lista de objetos, limitada a 1.000 por vez e apresentada em ordem não lexicográfica. O valor StorageClass retornado na resposta é um
valor padrão, uma vez que as operações da classe de armazenamento não estão implementadas no Object Storage. Essa operação não usa cabeçalhos ou elementos de carga útil específicos da operação
Sintaxe
GET https://{endpoint}/{bucket-name}?list-type=2 # path style
GET https://{bucket-name}.{endpoint}?list-type=2 # virtual host style
Parâmetros de consulta opcionais
| Nome | Tipo | Descrição |
|---|---|---|
list-type |
Sequência | Indica a versão 2 da API e o valor deve ser 2. |
prefix |
Sequência | Restringe a resposta aos nomes de objetos que começam com prefix. |
delimiter |
Sequência | Agrupa objetos entre o prefix e o delimiter. |
encoding-type |
Sequência | Se caracteres Unicode que não são suportados por XML forem usados em um nome de objeto, esse parâmetro poderá ser configurado como url para codificar adequadamente a resposta. |
max-keys |
Sequência | Restringe o número de objetos a serem exibidos na resposta. O valor padrão e máximo é 1.000. |
fetch-owner |
Sequência | A versão 2 da API não inclui as informações de Owner por padrão. Defina este parâmetro como “ true ” se desejar que a resposta inclua informações d Owner. |
continuation-token |
Sequência | Especifica o próximo conjunto de objetos a serem retornados quando sua resposta estiver truncada (o elemento IsTruncated retorna true).Sua resposta inicial inclui o elemento NextContinuationToken.
Use esse token na próxima solicitação como o valor para continuation-token. |
start-after |
Sequência | Retorna nomes de chave após um objeto chave específico. Este parâmetro só é válido na sua solicitação inicial. Se um parâmetro continuation-token estiver incluído em sua solicitação, esse parâmetro será ignorado. |
Exemplo de solicitação (simples)
Essa solicitação lista os objetos dentro do depósito "apiary".
GET /apiary?list-type=2 HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Solicitação de amostra (simples)
GET /apiary?list-type=2 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
Resposta de exemplo (simples)
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 814
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<KeyCount>3</KeyCount>
<MaxKeys>1000</MaxKeys>
<Delimiter/>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>drone-bee</Key>
<LastModified>2016-08-25T17:38:38.549Z</LastModified>
<ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>4</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>soldier-bee</Key>
<LastModified>2016-08-25T17:49:06.006Z</LastModified>
<ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>11</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>worker-bee</Key>
<LastModified>2016-08-25T17:46:53.288Z</LastModified>
<ETag>"d34d8aada2996fc42e6948b926513907"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>467</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
Solicitação de exemplo (parâmetro max-keys)
Essa solicitação lista os objetos dentro do depósito "apiary" com uma chave máxima retornada configurada como 1.
GET /apiary?list-type=2&max-keys=1 HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Exemplo de solicitação (parâmetro max-keys)
GET /apiary?list-type=2&max-keys=1 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
Resposta de exemplo (resposta truncada)
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 598
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<NextContinuationToken>1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg</NextContinuationToken>
<KeyCount>1</KeyCount>
<MaxKeys>1</MaxKeys>
<Delimiter/>
<IsTruncated>true</IsTruncated>
<Contents>
<Key>drone-bee</Key>
<LastModified>2016-08-25T17:38:38.549Z</LastModified>
<ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>4</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
Solicitação de exemplo (parâmetro continuation-token)
Essa solicitação lista os objetos dentro do depósito "apiary" com um token de continuação especificado.
GET /apiary?list-type=2&max-keys=1&continuation-token=1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Exemplo de solicitação (parâmetro “continuation-token”)
GET /apiary?list-type=2&max-keys=1&continuation-token=1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg 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
Resposta de exemplo (resposta truncada, parâmetro continuation-token)
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 604
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<ContinuationToken>1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg</ContinuationToken>
<NextContinuationToken>1a8j20CqowRrM4epIQ7fTBuyPZWZUeA8Epog16wYu9KhAPNoYkWQYhGURsIQbll1lP7c-OO-V5Vyzu6mogiakC4NSwlK4LyRDdHQgY-yPH4wMB76MfQR61VyxI4TJLxIWTPSZA0nmQQWcuV2mE4jiDA</NextContinuationToken>
<KeyCount>1</KeyCount>
<MaxKeys>1</MaxKeys>
<Delimiter/>
<IsTruncated>true</IsTruncated>
<Contents>
<Key>soldier-bee</Key>
<LastModified>2016-08-25T17:49:06.006Z</LastModified>
<ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>11</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
Listar objetos em um bucket específico (obsoleto)
Essa API é incluída para compatibilidade com uma versão anterior Consulte Versão 2 para obter o método recomendado de recuperação de objetos em um depósito.
Uma solicitação do tipo “ GET ” direcionada a um bucket retorna uma lista de objetos, limitada a 1.000 por vez e apresentada em ordem não lexicográfica. O valor StorageClass retornado na resposta é
um valor padrão, uma vez que as operações da classe de armazenamento não estão implementadas no Object Storage. Essa operação não usa cabeçalhos ou elementos de carga útil específicos da operação
Sintaxe
GET https://{endpoint}/{bucket-name} # path style
GET https://{bucket-name}.{endpoint} # virtual host style
Parâmetros de consulta opcionais para o método de objeto de lista
| Nome | Tipo | Descrição |
|---|---|---|
prefix |
Sequência | Restringe a resposta aos nomes de objetos que começam com prefix. |
delimiter |
Sequência | Agrupa objetos entre o prefix e o delimiter. |
encoding-type |
Sequência | Se caracteres Unicode que não são suportados por XML forem usados em um nome de objeto, esse parâmetro poderá ser configurado como url para codificar adequadamente a resposta. |
max-keys |
Sequência | Restringe o número de objetos a serem exibidos na resposta. O valor padrão e máximo é 1.000. |
marker |
Sequência | Especifica o objeto a partir do qual a listagem deve começar, em ordem binári UTF-8. |
Exemplo de solicitação
Essa solicitação lista os objetos dentro do depósito "apiary".
GET /apiary HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Exemplo de solicitação
GET /apiary 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
Exemplo de resposta
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 909
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<Marker/>
<MaxKeys>1000</MaxKeys>
<Delimiter/>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>drone-bee</Key>
<LastModified>2016-08-25T17:38:38.549Z</LastModified>
<ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>4</Size>
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>soldier-bee</Key>
<LastModified>2016-08-25T17:49:06.006Z</LastModified>
<ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>11</Size>
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>worker-bee</Key>
<LastModified>2016-08-25T17:46:53.288Z</LastModified>
<ETag>"d34d8aada2996fc42e6948b926513907"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>467</Size>
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
Excluir um depósito
Uma solicitação DELETE enviada a um bucket vazio exclui o bucket. O nome do bucket é mantido em reserva pelo sistema por 5 minutos após a exclusão. Após 5 minutos, o nome é liberado para reutilização. Somente depósitos vazios podem ser excluídos.
Se a instância de serviço Object Storage for excluída, todos os nomes de depósito nessa instância serão mantidos em reserva pelo sistema por 7 dias. Após 7 dias, os nomes são liberados para reutilização.
Sintaxe
DELETE https://{endpoint}/{bucket-name} # path style
DELETE https://{bucket-name}.{endpoint} # virtual host style
Cabeçalhos opcionais
| Nome | Tipo | Descrição |
|---|---|---|
aspera-ak-max-tries |
Sequência | Especifica o número de vezes para tentar a operação de exclusão. O valor padrão é 2. |
Exemplo de solicitação
DELETE /apiary HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Exemplo de solicitação
DELETE /apiary 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
O servidor responde com 204 No Content.
Se um depósito não vazio for solicitado para exclusão, o servidor responderá com 409 Conflict.
Exemplo de resposta
<Error>
<Code>BucketNotEmpty</Code>
<Message>The bucket you tried to delete is not empty.</Message>
<Resource>/apiary/</Resource>
<RequestId>9d2bbc00-2827-4210-b40a-8107863f4386</RequestId>
<httpStatusCode>409</httpStatusCode>
</Error>
Configurar o bloqueio de objeto em um depósito existente
Uma solicitação do PUT que é endereçada a um depósito vazio com o parâmetro de consulta ?object-lock define uma nova configuração de bloqueio de objeto em um depósito
Sintaxe
PUT https://{endpoint}/{bucket-name}?object-lock # path style
PUT https://{bucket-name}.{endpoint}?object-lock # virtual host style
A configuração do Object Lock é fornecida como XML no corpo da solicitação. As novas solicitações sobrescrevem quaisquer regras de replicação existentes que estejam presentes no depósito
Uma configuração de Bloqueio de Objeto deve incluir uma regra
| Cabeçalho | Tipo | Descrição |
|---|---|---|
Content-MD5 |
Sequência | O hash de 128 bits do payload, codificado no formato “ Base64 ” ( MD5 ), é utilizado como verificação de integridade para garantir que o payload não tenha sido alterado 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. |
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.
O corpo da solicitação deve conter um bloco XML com o esquema a seguir:
| Elemento | Tipo | Filhos | Antecessor | Restrição |
|---|---|---|---|---|
ObjectLockConfiguration |
Contêiner | ObjectLockEnabled, Rule |
Nenhum | Limite 1. |
ObjectLockEnabled |
Sequência | Nenhum | ObjectLockConfiguration |
O único valor válido é ENABLED. |
Rule |
Contêiner | DefaultRetention |
ObjectLockConfiguration |
Limite 1 |
DefaultRetention |
Contêiner | Days, Mode, Years |
Rule |
Limite 1. |
Days |
Integer | Nenhum | DefaultRetention |
O número de dias que deseja especificar para o período de retenção padrão. Ele não pode ser combinado com Years. |
Mode |
Sequência | Nenhum | DefaultRetention |
COMPLIANCE ou GOVERNANCE. |
Years |
Integer | Nenhum | DefaultRetention |
O número de anos que você deseja especificar para o período de retenção padrão.. Ele não pode ser combinado com Days. |
Exemplo de solicitação
Essa solicitação lista os objetos dentro do depósito "apiary".
GET /apiary HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Exemplo de resposta
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 909
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<ObjectLockEnabled>ENABLED</ObjectLockEnabled>
<Rule>
<DefaultRetention>
<Days>30</Days>
<Mode>COMPLIANCE</Mode>
</DefaultRetention>
</Rule>
</ObjectLockConfiguration>
Listar uploads de várias partes cancelados ou incompletos para um depósito..
Um GET emitido para um depósito com os parâmetros adequados recupera informações sobre quaisquer uploads de múltiplas partes cancelados ou incompletos para um depósito.
Sintaxe
GET https://{endpoint}/{bucket-name}?uploads= # path style
GET https://{bucket-name}.{endpoint}?uploads= # virtual host style
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
prefix |
Sequência | Restringe a resposta aos nomes de objetos que começam com {prefix}. |
delimiter |
Sequência | Agrupa objetos entre o prefix e o delimiter. |
encoding-type |
Sequência | Se caracteres Unicode que não são suportados por XML forem usados em um nome de objeto, esse parâmetro poderá ser configurado como url para codificar adequadamente a resposta. |
max-uploads |
Integer | Restringe o número de objetos a serem exibidos na resposta. O valor padrão e máximo é 1.000. |
key-marker |
Sequência | Especifica a partir de onde a lista deve começar. |
upload-id-marker |
Sequência | É ignorado se key-marker não for especificado; caso contrário, define um ponto a partir do qual se inicia a listagem das peças acima de upload-id-marker``. |
Exemplo de solicitação
O exemplo a seguir recupera todos os uploads de várias partes cancelados e incompletos.
GET /apiary?uploads= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
GET /apiary?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}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Resposta de exemplo (sem uploads de múltiplas partes em andamento)
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:22:27 GMT
X-Clv-Request-Id: 9fa96daa-9f37-42ee-ab79-0bcda049c671
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 9fa96daa-9f37-42ee-ab79-0bcda049c671
Content-Type: application/xml
Content-Length: 374
<ListMultipartUploadsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Bucket>apiary</Bucket>
<KeyMarker/>
<UploadIdMarker/>
<NextKeyMarker>multipart-object-123</NextKeyMarker>
<NextUploadIdMarker>0000015a-df89-51d0-2790-dee1ac994053</NextUploadIdMarker>
<MaxUploads>1000</MaxUploads>
<IsTruncated>false</IsTruncated>
<Upload>
<Key>file</Key>
<UploadId>0000015a-d92a-bc4a-c312-8c1c2a0e89db</UploadId>
<Initiator>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Initiator>
<Owner>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
<Initiated>2017-03-16T22:09:01.002Z</Initiated>
</Upload>
<Upload>
<Key>multipart-object-123</Key>
<UploadId>0000015a-df89-51d0-2790-dee1ac994053</UploadId>
<Initiator>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Initiator>
<Owner>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
<Initiated>2017-03-18T03:50:02.960Z</Initiated>
</Upload>
</ListMultipartUploadsResult>
Listar qualquer configuração de compartilhamento de recurso de origem cruzada para um depósito
Um GET emitido para um depósito com os parâmetros adequados recupera informações sobre a configuração de compartilhamento de recurso de origem cruzada (CORS) para um depósito.
Sintaxe
GET https://{endpoint}/{bucket-name}?cors= # path style
GET https://{bucket-name}.{endpoint}?cors= # virtual host style
Exemplo de solicitação
O exemplo a seguir apresenta uma configuração do CORS no bucket “apiary”.
GET /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
GET /apiary?cors= 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
Exemplo de resposta: Não há conjunto de configurações do CORS
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:20:30 GMT
X-Clv-Request-Id: 0b69bce1-8420-4f93-a04a-35d7542799e6
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 0b69bce1-8420-4f93-a04a-35d7542799e6
Content-Type: application/xml
Content-Length: 123
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedOrigin>http://www.ibm.com</AllowedOrigin>
</CORSRule>
</CORSConfiguration>
Criar uma configuração de compartilhamento de recurso de origem cruzada para um depósito
Um PUT emitido para um depósito com os parâmetros adequados cria ou substitui uma configuração de compartilhamento de recurso de origem cruzada (CORS) para um depósito.
Sintaxe
PUT https://{endpoint}/{bucket-name}?cors= # path style
PUT https://{bucket-name}.{endpoint}?cors= # 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 |
|---|---|---|---|---|
CORSConfiguration |
Contêiner | CORSRule |
|
|
CORSRule |
Contêiner | AllowedOrigin, AllowedMethod |
Excluir |
|
AllowedOrigin |
Sequência |
|
CORSRule |
Cadeia de origem válida... |
AllowedMethod |
Sequência |
|
CORSRule |
Sequência de método válida.. |
| Cabeçalho | Tipo | Descrição |
|---|---|---|
Content-MD5 |
Sequência | O hash de 128 bits do payload, codificado no formato “ base64 ” ( MD5 ), é utilizado como verificação de integridade para garantir que o payload não tenha sido alterado 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. |
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. O trecho a seguir mostra uma maneira de obter o conteúdo do cabeçalho Content-MD5, que é a representação binária de um hash base64-encoded MD5.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Exemplo de solicitação
O exemplo a seguir adiciona uma configuração de “ CORS ” que permite que solicitações provenientes de www.ibm.com enviem solicitações GET, PUT e POST ao bucket.
PUT /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 237
Exemplo de solicitação
PUT /apiary?cors= 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
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 237
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>http://www.ibm.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
</CORSRule>
</CORSConfiguration>
Exemplo de resposta
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Content-Length: 0
Exclua qualquer configuração de compartilhamento de recurso de origem cruzada para um depósito
Um DELETE emitido para um depósito com os parâmetros adequados cria ou substitui uma configuração de compartilhamento de recurso de origem cruzada (CORS) para um depósito.
Sintaxe
DELETE https://{endpoint}/{bucket-name}?cors= # path style
DELETE https://{bucket-name}.{endpoint}?cors= # virtual host style
Exemplo de solicitação
O exemplo a seguir exclui uma configuração do serviço “ CORS ” de um bucket.
DELETE /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
DELETE /apiary?cors= 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
O servidor responde com 204 No Content.
Listar a restrição de local para um depósito
Um GET emitido para um depósito com o parâmetro adequado recupera as informações de local para um depósito.
Sintaxe
GET https://{endpoint}/{bucket-name}?location # path style
GET https://{bucket-name}.{endpoint}?location # virtual host style
Exemplo de solicitação
O exemplo a seguir recupera o local do depósito "apiary".
GET /apiary?location= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
GET /apiary?location= 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
Exemplo de resposta
HTTP/1.1 200 OK
Date: Tue, 12 Jun 2018 21:10:57 GMT
X-Clv-Request-Id: 0e469546-3e43-4c6b-b814-5ad0db5b638f
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 0e469546-3e43-4c6b-b814-5ad0db5b638f
Content-Type: application/xml
Content-Length: 161
<LocationConstraint xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
us-south-standard
</LocationConstraint>
Criar uma configuração de ciclo de vida do depósito
Uma operação PUT usa o parâmetro de consulta de ciclo de vida para definir as configurações de ciclo de vida para o depósito. 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.
O trecho a seguir mostra uma maneira de obter o conteúdo do cabeçalho Content-MD5, que é a representação binária de um hash base64-encoded MD5.
Sintaxe
PUT https://{endpoint}/{bucket-name}?lifecycle # path style
PUT https://{bucket-name}.{endpoint}?lifecycle # 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 |
|---|---|---|---|---|
LifecycleConfiguration |
Contêiner | Rule |
Nenhum | Limite 1 |
Rule |
Contêiner | ID, Status, Filter, Transition |
LifecycleConfiguration |
Limite 1 |
ID |
Sequência | Nenhum | Rule |
Deve consistir em (a-z,A-Z,0-9) e nos símbolos a seguir:! _ . * ' ( ) - |
Filter |
Sequência | Prefix |
Rule |
Deve conter um elemento Prefix. |
Expiration |
Contêiner | Days, Date, ExpiredObjectDeleteMarker |
Rule |
Limite 1 |
Prefix |
Sequência | Nenhum | Filter |
Se estiver usando uma regra de transição (archive), o valor deverá ser configurado como <Prefix/>. Essa limitação não se aplica às regras de expiração |
Transition |
Contêiner | Days, StorageClass |
Rule |
Limite 1 regra de transição e 1000 regras no total. |
Days |
Número inteiro não negativo | Nenhum | Transition |
Deve ser um valor igual ou maior que 0. |
Date |
Data | Nenhum | Transition |
Deve estar no formato ISO 8601 e a data deve ser futura. |
StorageClass |
Sequência | Nenhum | Transition |
Deve ser definido como GLACIER ou ACCELERATED |
ExpiredObjectDeleteMarker |
Booleano | Nenhum | Expiration |
Deve ser true ou false. |
NoncurrentVersionExpiration |
Contêiner | NoncurrentDays |
NoncurrentVersionExpiration |
Limite 1 |
NoncurrentDays |
Número Inteiro Positivo | Nenhum | Transition |
Deve ser um valor maior que 0. |
AbortIncompleteMultipartUpload |
Contêiner | DaysAfterInitiation |
Rule |
Limite 1 |
DaysAfterInitiation |
Número inteiro não negativo | Nenhum | AbortIncompleteMultipartUpload |
Deve ser um valor maior que 0. |
| Cabeçalho | Tipo | Descrição |
|---|---|---|
Content-MD5 |
Sequência | O hash de 128 bits do payload, codificado no formato “ base64 ” ( MD5 ), é utilizado como verificação de integridade para garantir que o payload não tenha sido alterado 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. |
IBM Cloud® Object Storage IaaS As contas (não IAM) não conseguem definir a classe de armazenamento de transição como ACCELERATED.
<LifecycleConfiguration>
<Rule>
<ID>{string}</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Transition>
<Days>{integer}</Days>
<StorageClass>GLACIER</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
O fragmento a seguir mostra uma maneira de alcançar o conteúdo para esse cabeçalho específico.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Exemplo de solicitação
PUT /apiary?lifecycle HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: {authorization-string}
Content-Type: text/plain
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
Exemplo de solicitação
PUT /apiary?lifecycle 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
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
Host: s3.us.cloud-object-storage.appdomain.cloud
<LifecycleConfiguration>
<Rule>
<ID>my-archive-policy</ID>
<Filter>
<Prefix/>
</Filter>
<Status>Enabled</Status>
<Transition>
<Days>20</Days>
<StorageClass>GLACIER</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
O servidor responde com 200 OK.
<LifecycleConfiguration>
<Rule>
<ID>{string}</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Expiration>
<Days>{integer}</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
O fragmento a seguir mostra uma maneira de alcançar o conteúdo para esse cabeçalho específico.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Exemplo de solicitação
PUT /cit-test?lifecycle HTTP/1.1
Host: 192.168.35.22
Date: Fri, 28 Feb 2020 14:12:06 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:WrlFRE2KMmhutBf3CxIZoNLl/ko=
Content-MD5: To3JYtaVNR3+aGYtl1dlmw==
Content-Length: 321
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ID>ID1</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Expiration>
<Days>100</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
Exemplo de resposta O servidor responde com 200 OK.
We are completely uploaded and fine
HTTP/1.1 200 OK
Date: Fri, 28 Feb 2020 14:12:06 GMT
X-Clv-Request-Id: 587d909f-4939-41ef-8c16-80aea16a0587
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
x-amz-request-id: 587d909f-4939-41ef-8c16-80aea16a0587
Content-Length: 0
Exemplo de solicitação
PUT /{bucket-name}?lifecycle HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Content-Length: 123
Exemplo de solicitação
PUT /{bucket-name}?lifecycle 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
Content-Length: 123
Recuperar uma configuração de ciclo de vida do depósito
Uma operação GET usa o parâmetro de consulta de ciclo de vida para recuperar as configurações de ciclo de vida para o depósito.
Sintaxe
GET https://{endpoint}/{bucket-name}?lifecycle # path style
GET https://{bucket-name}.{endpoint}?lifecycle # virtual host style
Exemplo de solicitação
GET /apiary?lifecycle HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: {authorization-string}
Exemplo de solicitação
GET /apiary?lifecycle 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
Exemplo de resposta
<LifecycleConfiguration>
<Rule>
<ID>my-archive-policy</ID>
<Filter>
<Prefix/>
</Filter>
<Status>Enabled</Status>
<Transition>
<Days>20</Days>
<StorageClass>GLACIER</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
Exemplo de solicitação
GET /cit_dump-log?lifecycle HTTP/1.1
Host: 192.168.35.22
User-Agent: curl/7.64.1
Accept: */*
Date: Fri, 28 Feb 2020 14:00:43 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:iKm2QNetyW740kylP6ja2pze3DM=
Content-MD5: 1B2M2Y8AsgTpgAmY7PhCfg==
Exemplo de resposta
HTTP/1.1 200 OK
Date: Fri, 28 Feb 2020 14:00:43 GMT
X-Clv-Request-Id: ecbf9294-284d-4169-b2cd-5d52b2450808
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
x-amz-request-id: ecbf9294-284d-4169-b2cd-5d52b2450808
Content-Type: application/xml
Content-Length: 276
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ID>ID1</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Expiration>
<Days>270</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
Exclua os dados antigos com regras de expiração
Quaisquer ações de expiração para objetos sujeitos à política de retenção Imutável Object Storage de um bucket são adiadas até que a política de retenção não seja mais aplicada.
Para obter mais informações sobre como usar a configuração do ciclo de vida para excluir objetos, consulte a documentação
Essa implementação da operação PUT usa o parâmetro de consulta lifecycle para definir as configurações de ciclo de vida para o depósito. Essa operação permite uma definição de política de ciclo de vida única para um
depósito. A política é definida como um conjunto de regras que consiste nos seguintes parâmetros: ID, Status, Filter e Expiration.
| Cabeçalho | Tipo | Descrição |
|---|---|---|
Content-MD5 |
Sequência | O hash de 128 bits do payload, codificado no formato “ Base64 ” ( MD5 ), é utilizado como verificação de integridade para garantir que o payload não tenha sido alterado 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. |
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.
O trecho a seguir mostra uma maneira de obter o conteúdo do cabeçalho Content-MD5, que é a representação binária de um hash base64-encoded MD5.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
O corpo da solicitação deve conter um bloco XML com o esquema a seguir:
| Elemento | Tipo | Filhos | Antecessor | Restrição |
|---|---|---|---|---|
LifecycleConfiguration |
Contêiner | Rule |
Nenhum | Limite 1. |
Rule |
Contêiner | ID, Status, Filter, Expiration |
LifecycleConfiguration |
Limite 1000. |
ID |
Sequência | Nenhum | Rule |
Deve consistir em (a-z,A-Z,0-9) e nos símbolos a seguir: ! _ . * ' ( ) - |
Filter |
Sequência | Prefix |
Rule |
Deve conter um elemento Prefix |
Prefix |
Sequência | Nenhum | Filter |
A regra se aplica a quaisquer objetos com chaves que correspondam a esse prefixo. |
Expiration |
Contêiner | Days ou Date |
Rule |
Limite 1. |
Days |
Número inteiro não negativo | Nenhum | Expiration |
Deve ser um valor maior que 0. |
Date |
Data | Nenhum | Expiration |
Deve estar no formato ISO 8601. |
Sintaxe
PUT https://{endpoint}/{bucket}?lifecycle # path style
PUT https://{bucket}.{endpoint}?lifecycle # virtual host style
Exemplo de solicitação
PUT /images?lifecycle HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Date: Wed, 7 Feb 2018 17:50:00 GMT
Authorization: authorization string
Content-Type: text/plain
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
<LifecycleConfiguration>
<Rule>
<ID>id1</ID>
<Filter />
<Status>Enabled</Status>
<Expiration>
<Days>60</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
Excluir a configuração de ciclo de vida de um depósito
Um DELETE emitido para um depósito com os parâmetros adequados remove quaisquer configurações de ciclo de vida de um depósito.
Sintaxe
DELETE https://{endpoint}/{bucket-name}?lifecycle # path style
DELETE https://{bucket-name}.{endpoint}?lifecycle # virtual host style
Exemplo de solicitação
DELETE /apiary?lifecycle HTTP/1.1
Authorization: {authorization-string}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
DELETE /apiary?lifecycle 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
O servidor responde com 204 No Content.
Exemplo de solicitação
DELETE /cit-test?lifecycle HTTP/1.1
Host: 192.168.35.22
User-Agent: curl/7.64.1
Accept: */*
Date: Fri, 28 Feb 2020 14:16:47 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:n25GU28DiBgkNVgET5hKmLmp938=
Content-MD5: 1B2M2Y8AsgTpgAmY7PhCfg==
Exemplo de resposta
HTTP/1.1 204 No Content
Date: Fri, 28 Feb 2020 14:16:47 GMT
X-Clv-Request-Id: 3e8bdf1e-b611-4b83-a404-e7d3e58e60b0
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
x-amz-request-id: 3e8bdf1e-b611-4b83-a404-e7d3e58e60b0
O servidor responde com 204 No Content.
Incluir uma política de retenção em um depósito existente
O Immutable Object Storage está disponível apenas em determinadas regiões; consulte Serviços integrados para obter detalhes. O serviço também exige um plano de preços Padrão. Consulte precificação para obter detalhes.
Descubra mais sobre o Object Storage na documentação
Os valores mínimo e máximo suportados para as configurações de período de retenção MinimumRetention, DefaultRetention e MaximumRetention são, no mínimo, 0 dias e, no máximo, 365.243 dias (1.000 anos).
Esta operação não usa parâmetros de consulta extras O cabeçalho Content-MD5 ou o 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. O trecho a seguir mostra uma maneira de obter o conteúdo do cabeçalho Content-MD5, que
é a representação binária de um hash base64-encoded MD5.
As políticas são aplicadas até o término de um período de retenção e não podem ser alteradas até que o período de retenção tenha expirado. Embora o IBM Cloud® Object Storage utilize a API S3 para a maioria das operações, as APIs utilizadas para configurar políticas de retenção não são as mesmas que a API S3, embora algumas terminologias possam ser comuns. Leia esta documentação com atenção para evitar que qualquer usuário da sua organização crie objetos que não possam ser excluídos, mesmo pelos administradores d IBM Cloud.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Sintaxe
PUT https://{endpoint}/{bucket-name}?protection= # path style
PUT https://{bucket-name}.{endpoint}?protection= # virtual host style
O corpo da solicitação deve conter um bloco XML com o esquema a seguir:
| Elemento | Tipo | Filhos | Antecessor | Restrição |
|---|---|---|---|---|
ProtectionConfiguration |
Contêiner | Status, MinimumRetention, MaximumRetention, DefaultRetention |
|
|
Status |
Sequência |
|
ProtectionConfiguration |
Sequência de status válida.. |
MinimumRetention |
Contêiner | Days |
ProtectionConfiguration |
|
MaximumRetention |
Contêiner | Days |
ProtectionConfiguration |
|
DefaultRetention |
Contêiner | Days |
ProtectionConfiguration |
|
Days |
Integer |
|
MinimumRetention, MaximumRetention, DefaultRetention |
Número inteiro de retenção válido |
| Cabeçalho | Tipo | Descrição |
|---|---|---|
Content-MD5 |
Sequência | O hash de 128 bits do payload, codificado no formato “ base64 ” ( MD5 ), é utilizado como verificação de integridade para garantir que o payload não tenha sido alterado 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. |
Exemplo de solicitação
PUT /example-bucket?protection= HTTP/1.1
Authorization: {authorization-string}
x-amz-date: 20181011T190354Z
x-amz-content-sha256: 2938f51643d63c864fdbea618fe71b13579570a86f39da2837c922bae68d72df
Content-MD5: GQmpTNpruOyK6YrxHnpj7g==
Content-Type: text/plain
Host: 67.228.254.193
Content-Length: 299
<ProtectionConfiguration>
<Status>Retention</Status>
<MinimumRetention>
<Days>100</Days>
</MinimumRetention>
<MaximumRetention>
<Days>10000</Days>
</MaximumRetention>
<DefaultRetention>
<Days>2555</Days>
</DefaultRetention>
</ProtectionConfiguration>
Exemplo de resposta
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2018 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Server: Cleversafe/3.14.1
X-Clv-S3-Version: 2.5
x-amz-request-id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Content-Length: 0
Configurar um bucket para hospedagem de sites estáticos
Uma instrução PUT emitida para um bucket com os parâmetros corretos cria ou substitui a configuração de um site estático para esse bucket.
Sintaxe
PUT https://{endpoint}/{bucket-name}?website # path style
PUT https://{bucket-name}.{endpoint}?website # 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 |
|---|---|---|---|---|
WebsiteConfiguration |
Contêiner | ErrorDocument, IndexDocument, RedirectAllRequestsTo, RoutingRule |
|
Obrigatório |
ErrorDocument |
Contêiner | Key |
WebsiteConfiguration |
|
Key |
Sequência |
|
ErrorDocument |
|
IndexDocument |
Contêiner | Suffix |
WebsiteConfiguration |
|
Suffix |
Sequência |
|
IndexDocument |
|
RedirectAllRequestsTo |
Contêiner | HostName, Protocol |
WebsiteConfiguration |
Se fornecido, ele deve ser o único elemento especificado |
HostName |
Sequência |
|
RedirectAllRequestsTo |
|
Protocol |
Sequência |
|
RedirectAllRequestsTo |
|
RoutingRules |
Contêiner | RoutingRule |
WebsiteConfiguration |
|
RoutingRule |
Contêiner | Condition, Redirect |
RoutingRules |
|
Condition |
Contêiner | HttpErrorCodeReturnedEquals, KeyPrefixEquals |
RoutingRule |
|
HttpErrorCodeReturnedEquals |
Sequência |
|
Condition |
|
KeyPrefixEquals |
Sequência |
|
Condition |
|
Redirect |
Contêiner | HostName, HttpRedirectCode, Protocol, ReplaceKeyPrefixWith, ReplaceKeyWith |
RoutingRule |
|
HostName |
Sequência |
|
Redirect |
|
HttpRedirectCode |
Sequência |
|
Redirect |
|
Protocol |
Sequência |
|
Redirect |
|
ReplaceKeyPrefixWith |
Sequência |
|
Redirect |
|
ReplaceKeyWith |
Sequência |
|
Redirect |
|
Exemplo de solicitação
O exemplo a seguir inclui uma configuração de website que atende a um website básico que procura um arquivo index.html em cada prefixo Por exemplo, uma solicitação feita para /apiary/images/ entrega o conteúdo em /apiary/images/index.html sem a necessidade de especificar o arquivo real.
PUT /apiary?website HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 119
PUT /apiary?website 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
Content-Length: 119
<WebsiteConfiguration>
<IndexDocument>
<Suffix>index.html</Suffix>
</IndexDocument>
</WebsiteConfiguration>
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
Excluir qualquer configuração de website para um depósito
Uma solicitação do DELETE que é emitida para um depósito com os parâmetros adequados remove a configuração do website para um depósito
Sintaxe
DELETE https://{endpoint}/{bucket-name}?website # path style
DELETE https://{bucket-name}.{endpoint}?website # virtual host style
Exemplo de solicitação
O exemplo a seguir exclui uma configuração de website para um depósito
DELETE /apiary?website HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
DELETE /apiary?website 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
O servidor responde com 204 No Content.
Bloquear ACLs públicas em um depósito
Uma solicitação do PUT que é emitida para um depósito com os parâmetros adequados evita a inclusão de ACLs de acesso público em um depósito Pode ser configurado para falhar novas solicitações de ACL ou para ignorá-las. BlockPublicAcls não afeta as ACLs existentes, mas IgnorePublicAcls ignora as ACLs existentes. Essa operação não afeta as políticas de Acesso público do IAM
Sintaxe
PUT https://{endpoint}/{bucket-name}?publicAccessBlock # path style
PUT https://{bucket-name}.{endpoint}?publicAccessBlock # 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 |
|---|---|---|---|---|
| PublicAccessBlockConfiguration | Contêiner | BlockPublicAcls, IgnorePublicAcls |
|
Obrigatório |
| BlockPublicAcls | Booleano |
|
PublicAccessBlockConfiguration |
|
| IgnorePublicAcls | Booleano |
|
PublicAccessBlockConfiguration |
|
Exemplo de solicitação
PUT /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 155
PUT /apiary?publicAccessBlock 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
Content-Length: 155
<PublicAccessBlockConfiguration>
<BlockPublicAcls>True</BlockPublicAcls>
<IgnorePublicAcls>True</IgnorePublicAcls>
</PublicAccessBlockConfiguration>
Exemplo de resposta
HTTP/1.1 200 OK
Date: Mon, 02 Nov 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 0
Verifique um bloco da ACL pública para um depósito
Um GET emitido para um depósito com os parâmetros adequados retorna a configuração do bloco da ACL para um depósito
Sintaxe
GET https://{endpoint}/{bucket-name}?publicAccessBlock # path style
GET https://{bucket-name}.{endpoint}?publicAccessBlock # virtual host style
Exemplo de solicitação
O exemplo a seguir lê um bloco de acesso público para um depósito
GET /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
GET /apiary?publicAccessBlock 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
HTTP/1.1 200 OK
Date: Mon, 02 Nov 2020 19:52:56 GMT
X-Clv-Request-Id: 7c9079b1-2833-4abc-ba10-466ef06725b2
Server: Cleversafe/3.15.2.31
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
Content-Type: application/xml
Content-Length: 248
<PublicAccessBlockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<BlockPublicAcls>true</BlockPublicAcls>
<IgnorePublicAcls>true</IgnorePublicAcls>
</PublicAccessBlockConfiguration>
Excluir um bloco de ACL público de um depósito
Um DELETE emitido para um depósito com os parâmetros adequados remove o bloco da ACL pública de um depósito
Sintaxe
DELETE https://{endpoint}/{bucket-name}?publicAccessBlock # path style
DELETE https://{bucket-name}.{endpoint}?publicAccessBlock # virtual host style
Exemplo de solicitação
O exemplo a seguir exclui um bloco de ACL para um depósito.
DELETE /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Exemplo de solicitação
DELETE /apiary?publicAccessBlock 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
O servidor responde com 204 No Content.
Operações da política de backup
A API de política de backup do IBM Cloud® Object Storage fornece operações para criar, gerenciar e interagir com políticas de backup. As políticas de backup definem como é feito o backup dos dados nos buckets para os cofres de backup.
Para obter mais informações sobre permissões e acesso, consulte Permissões da política de backup.
Criar uma política de backup
Uma solicitação POST para o ponto de extremidade /buckets/{bucket}/backup_policies cria uma nova política de backup para um bucket.
| Cabeçalho | Tipo | Obrigatório? | Descrição |
|---|---|---|---|
MD5 |
Sequência | Não | MD5 hash do conteúdo. Se fornecido, o hash da solicitação deve corresponder. |
| Parâmetro de caminho | Tipo | Obrigatório? | Descrição |
|---|---|---|---|
bucket_name |
Sequência | True | O nome do bucket ao qual a política de backup é aplicada. |
Sintaxe
POST https://{endpoint}/buckets/{bucket}/backup_policies
Corpo da solicitação
{
"policy_name": "myBackupPolicy",
"initial_retention": {
"delete_after_days": 10
},
"backup_type": "continuous",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name"
}
Exemplo de solicitação
POST /buckets/myBucket/backup_policies HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
{
"initial_retention": {
"delete_after_days": 10
},
"policy_name": "myBackupPolicy",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:2de9d5b5:12b951c9-d4e1-61a4-518c-3acc2034ba30:backup-vault:l4pi16n8rt--ufqb7.r-fw2ziy",
"backup_type": "continuous"
}
Exemplo de resposta
{
"policy_name": "myBackupPolicy",
"initial_retention": {
"delete_after_days": 10
},
"backup_type": "continuous",
"policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
"policy_status": "pending",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name"
}
Listar políticas de backup
Uma solicitação GET para o ponto de extremidade /buckets/{bucket}/backup_policies recupera todas as políticas de backup de um bucket.
| Parâmetro de caminho | Tipo | Obrigatório? | Descrição |
|---|---|---|---|
bucket_name |
Sequência | True | O nome do compartimento para o qual serão listadas as políticas de backup. |
Sintaxe
GET https://{endpoint}/buckets/{bucket}/backup_policies
Exemplo de solicitação
GET /buckets/myBucket/backup_policies HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
Exemplo de resposta
[
{
"policy_name": "myBackupPolicy",
"initial_retention": {
"delete_after_days": 10
},
"backup_type": "continuous",
"policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
"policy_status": "active",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:8dfbcba4e6a740e3866020847e525436:backup-vault:backup-vault-name"
}
]
Obter detalhes da política de backup
Uma solicitação GET para o ponto de extremidade /buckets/{bucket}/backup_policies/{policy_id} recupera detalhes sobre uma política de backup específica.
| Parâmetro de caminho | Tipo | Obrigatório? | Descrição |
|---|---|---|---|
bucket_name |
Sequência | True | O nome do depósito. |
policy_id |
Sequência | True | O ID da política de backup. |
Sintaxe
GET https://{endpoint}/buckets/{bucket}/backup_policies/{policy_id}
Exemplo de solicitação
GET /buckets/myBucket/backup_policies/44d3dd41-d616-4d25-911a-9ef7fbf28aef HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
Exemplo de resposta
{
"policy_name": "myBackupPolicy",
"backup_type": "continuous",
"policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
"policy_status": "active",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name",
"initial_retention": {
"delete_after_days": 10
}
}
Excluir uma política de backup
Uma solicitação DELETE para o ponto de extremidade /buckets/{bucket}/backup_policies/{policy_id} exclui uma política de backup específica.
| Parâmetro de caminho | Tipo | Obrigatório? | Descrição |
|---|---|---|---|
bucket_name |
Sequência | True | O nome do depósito. |
policy_id |
Sequência | True | O ID da política de backup. |
Sintaxe
DELETE https://{endpoint}/buckets/{bucket}/backup_policies/{policy_id}
Exemplo de solicitação
DELETE /buckets/myBucket/backup_policies/44d3dd41-d616-4d25-911a-9ef7fbf28aef HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
Exemplo de resposta
HTTP/1.1 204 No Content
Para obter mais informações sobre operações de política de backup, consulte Gerenciamento do cofre de backup.
Próximas etapas
Para obter mais informações, consulte Operações de objeto