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.

Componentes de 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çalhos
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âmetros de consulta
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çalhos
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:

Corpo do esquema de solicitação
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çalhos
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

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

Parâmetros de consulta opcionais
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

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çalhos opcionais
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:

Corpo do esquema de solicitação
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

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:

Corpo do esquema de solicitação
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çalhos opcionais
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:

Corpo do esquema de solicitação
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 opcional
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çalhos opcionais
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:

Corpo do esquema de solicitação
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:

Corpo do esquema de solicitação
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çalhos opcionais
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:

Corpo do esquema de solicitação
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:

Corpo do esquema de solicitação
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çalhos
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âmetros de caminho
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âmetros de caminho
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âmetros de caminho
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âmetros de caminho
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