Skip to main content
Uma versão mais recente deste produto está disponível.
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Operações e detalhes de implementação do bucket S3 no StorageGRID

O sistema StorageGRID suporta um máximo de 5.000 buckets por conta de locatário do S3.

Cada grid pode ter no máximo 100.000 buckets.

Para suportar 5.000 buckets, cada Storage Node na grid deve ter no mínimo 64 GB de RAM.

As restrições de nome de bucket seguem as restrições da região AWS US Standard, mas você deve restringi-las ainda mais às convenções de nomenclatura DNS para dar suporte a solicitações no estilo de hospedagem virtual do S3.

Veja a seguir para mais informações:

As operações ListObjects (GET Bucket) e ListObjectVersions (GET Bucket object versions) são compatíveis com StorageGRID "valores de consistência".

Você pode verificar se as atualizações do último tempo de acesso estão habilitadas ou desabilitadas para buckets individuais. Veja "Obter o último tempo de acesso do bucket".

A tabela a seguir descreve como o StorageGRID implementa as operações de bucket da API REST do S3. Para executar qualquer uma dessas operações, as credenciais de acesso necessárias devem ser fornecidas para a conta.

Operação Implementação

CreateBucket

Cria um novo bucket. Ao criar o bucket, você se torna o proprietário dele.

  • Os nomes dos buckets devem obedecer às seguintes regras:

    • Deve ser único em cada sistema StorageGRID (e não apenas único dentro da conta do locatário).

    • Deve ser compatível com DNS.

    • Deve conter no mínimo 3 e no máximo 63 caracteres.

    • Pode ser uma série de um ou mais rótulos, com rótulos adjacentes separados por um ponto. Cada rótulo deve começar e terminar com uma letra minúscula ou um número e só pode usar letras minúsculas, números e hífens.

    • Não deve ter a aparência de um endereço IP formatado como texto.

    • Não se deve usar pontos em solicitações no estilo de hospedagem virtual. Os pontos causarão problemas com a verificação do certificado curinga do servidor.

  • Por padrão, os buckets são criados na us-east-1 região; no entanto, você pode usar o LocationConstraint elemento no corpo da requisição para especificar uma região diferente. Ao usar o LocationConstraint elemento, você deve especificar o nome exato de uma região que tenha sido definida usando o Grid Manager ou a Grid Management API. Entre em contato com o administrador do sistema se não souber o nome da região que deve usar.

    Nota: ocorrerá um erro se a sua solicitação CreateBucket usar uma região que não foi definida no StorageGRID.

  • Você pode incluir o x-amz-bucket-object-lock-enabled cabeçalho da solicitação para criar um bucket com o S3 Object Lock ativado. Consulte "Use a API REST S3 para configurar o S3 Object Lock".

    Você deve habilitar o S3 Object Lock ao criar o bucket. Você não pode adicionar ou desabilitar o S3 Object Lock depois que um bucket é criado. O S3 Object Lock requer o versionamento de buckets, que é habilitado automaticamente ao criar o bucket.

DeleteBucket

Exclui o bucket.

DeleteBucketCors

Remove a configuração CORS do bucket.

DeleteBucketEncryption

Remove a criptografia padrão do bucket. Os objetos criptografados existentes permanecem criptografados, mas quaisquer novos objetos adicionados ao bucket não são criptografados.

DeleteBucketLifecycle

Exclui a configuração de ciclo de vida do bucket. Consulte "Criar configuração de ciclo de vida do S3".

DeleteBucketPolicy

Exclui a política associada ao bucket.

DeleteBucketReplication

Exclui a configuração de replicação associada ao bucket.

DeleteBucketTagging

Utiliza o tagging subrecurso para remover todas as tags de um bucket.

Atenção: Se uma tag de política ILM não padrão estiver definida para este bucket, haverá uma NTAP-SG-ILM-BUCKET-TAG tag de bucket com um valor atribuído a ela. Não envie uma solicitação DeleteBucketTagging se houver uma NTAP-SG-ILM-BUCKET-TAG tag de bucket. Em vez disso, envie uma solicitação PutBucketTagging contendo apenas a NTAP-SG-ILM-BUCKET-TAG tag e seu valor atribuído para remover todas as outras tags do bucket. Não modifique nem remova a NTAP-SG-ILM-BUCKET-TAG tag de bucket.

GetBucketAcl

Retorna uma resposta positiva e o ID, DisplayName e a permissão do proprietário do bucket, indicando que o proprietário tem acesso total ao bucket.

GetBucketCors

Retorna a `cors`configuração do bucket.

GetBucketEncryption

Retorna a configuração de criptografia padrão para o bucket.

GetBucketLifecycleConfiguration

(anteriormente chamado GET Bucket lifecycle)

Retorna a configuração do ciclo de vida do bucket. Consulte "Criar configuração de ciclo de vida do S3".

GetBucketLocation

Retorna a região que foi definida usando o elemento LocationConstraint na solicitação CreateBucket. Se a região do bucket for us-east-1, uma string vazia será retornada para a região.

GetBucketNotificationConfiguration

(anteriormente chamado de GET Bucket notification)

Retorna a configuração de notificação associada ao bucket.

GetBucketPolicy

Retorna a política associada ao bucket.

GetBucketReplication

Retorna a configuração de replicação associada ao bucket.

GetBucketTagging

Utiliza o tagging subrecurso para retornar todas as tags de um bucket.

Atenção: Se uma tag de política ILM não padrão estiver definida para este bucket, haverá uma tag de bucket NTAP-SG-ILM-BUCKET-TAG com um valor atribuído a ela. Não modifique nem remova esta tag.

GetBucketVersioning

Esta implementação utiliza o versioning subrecurso para retornar o estado de versionamento de um bucket.

  • blank: O versionamento nunca foi ativado (o bucket está "Não versionado")

  • Ativado: o versionamento está ativado

  • Suspenso: o versionamento estava ativado anteriormente e está suspenso

GetObjectLockConfiguration

Retorna o modo de retenção padrão do bucket e o período de retenção padrão, se configurados.

HeadBucket

Determina se um bucket existe e se você tem permissão para acessá-lo.

Esta operação retorna:

  • x-ntap-sg-bucket-id: o UUID do bucket no formato UUID.

  • x-ntap-sg-trace-id: o ID de rastreamento exclusivo da solicitação associada.

ListObjects e ListObjectsV2

(anteriormente chamado GET Bucket)

Retorna alguns ou todos (até 1.000) os objetos em um bucket. A Storage Class para objetos pode ter um dos dois valores, mesmo que o objeto tenha sido ingerido com a REDUCED_REDUNDANCY storage class option:

  • STANDARD, o que indica que o objeto está armazenado em um pool de storage composto por Storage Nodes.

  • GLACIER, o que indica que o objeto foi movido para o bucket externo especificado pelo Cloud Storage Pool.

Se o bucket contiver um grande número de chaves excluídas com o mesmo prefixo, a resposta pode incluir algumas CommonPrefixes que não contêm chaves.

Para as solicitações HeadObject e ListObject, o StorageGRID retorna os timestamps LastModified com precisões diferentes, enquanto a AWS retorna os timestamps com a mesma precisão, como mostrado nos exemplos a seguir:

  • StorageGRID HeadObject: ""LastModified": "2024-09-26T16:43:24+00:00"

  • StorageGRID ListObject: "LastModified": "2024-09-26T16:43:24.931000+00:00"

  • AWS HeadObject: "LastModified": "2023-10-17T00:19:54+00:00"

  • AWS ListObject: "LastModified": "2023-10-17T00:19:54+00:00"

ListObjectVersions

(anteriormente chamado de GET Bucket Object versions)

Com acesso de LEITURA em um bucket, usar essa operação com o versions subrecurso lista os metadados de todas as versões dos objetos no bucket.

PutBucketCors

Define a configuração CORS para um bucket, permitindo que ele atenda solicitações de origem cruzada. O compartilhamento de recursos de origem cruzada (CORS) é um mecanismo de segurança que permite que aplicativos web cliente em um domínio acessem recursos em um domínio diferente. Por exemplo, suponha que você use um bucket S3 chamado images para armazenar imagens. Ao definir a configuração CORS para o bucket images, você pode permitir que as imagens nesse bucket sejam exibidas no site http://www.example.com.

PutBucketEncryption

Define o estado de criptografia padrão de um bucket existente. Quando a criptografia no nível do bucket está habilitada, todos os novos objetos adicionados ao bucket são criptografados. O StorageGRID oferece suporte à criptografia do lado do servidor com chaves gerenciadas pelo StorageGRID. Ao especificar a regra de configuração de criptografia do lado do servidor, defina o parâmetro SSEAlgorithm como AES256 e não use o parâmetro KMSMasterKeyID.

A configuração de criptografia padrão do bucket é ignorada se a solicitação de upload do objeto já especificar criptografia (ou seja, se a solicitação incluir o x-amz-server-side-encryption-* cabeçalho de solicitação).

PutBucketLifecycleConfiguration

(anteriormente denominado PUT Bucket lifecycle)

Cria uma nova configuração de ciclo de vida para o bucket ou substitui uma configuração de ciclo de vida existente. O StorageGRID suporta até 1.000 regras de ciclo de vida em uma configuração de ciclo de vida. Cada regra pode incluir os seguintes elementos XML:

  • Validade (dias, data, ExpiredObjectDeleteMarker)

  • NoncurrentVersionExpiration (NewerNoncurrentVersions, NoncurrentDays)

  • Filtro (Prefixo, Tag)

  • Status

  • ID

StorageGRID não suporta estas ações:

  • AbortIncompleteMultipartUpload

  • Transição

Consulte "Criar configuração de ciclo de vida do S3". Para entender como a ação de expiração no ciclo de vida do bucket interage com as instruções de posicionamento do ILM, consulte "Como o ILM opera ao longo do ciclo de vida de um objeto".

Nota: a configuração do ciclo de vida do bucket pode ser usada com buckets que têm o S3 Object Lock ativado, mas a configuração do ciclo de vida do bucket não é compatível com buckets legados Compliant.

PutBucketNotificationConfiguration

(anteriormente chamada de PUT Bucket notification)

Configura as notificações para o bucket usando o XML de configuração de notificações incluído no corpo da solicitação. Você deve estar ciente dos seguintes detalhes de implementação:

  • StorageGRID suporta tópicos do Amazon Simple Notification Service (Amazon SNS), tópicos do Kafka ou endpoints de webhook como destinos. Endpoints do Simple Queue Service (SQS) ou do AWS Lambda não são suportados.

  • O destino das notificações deve ser especificado como o URN de um endpoint do StorageGRID. Os endpoints podem ser criados usando o Tenant Manager ou a Tenant Management API.

    O endpoint deve existir para que a configuração de notificação seja bem-sucedida. Se o endpoint não existir, um erro 400 Bad Request é retornado com o código InvalidArgument.

  • Não é possível configurar uma notificação para os seguintes tipos de evento. Esses tipos de evento não são suportados.

    • s3:ReducedRedundancyLostObject

    • s3:ObjectRestore:Completed

  • As notificações de eventos enviadas pelo StorageGRID usam o formato JSON padrão, exceto que não incluem algumas chaves e usam valores específicos para outras, conforme mostrado na lista a seguir:

    • eventSource

      sgws:s3

    • awsRegion

      não incluído

    • x-amz-id-2

      não incluído

    • arn

      urn:sgws:s3:::bucket_name

PutBucketPolicy

Define a política associada ao bucket. Consulte "Use políticas de acesso a buckets e grupos".

PutBucketReplication

Configura "StorageGRID CloudMirror replicação" para o bucket usando o XML de configuração de replicação fornecido no corpo da solicitação. Para a replicação CloudMirror, você deve estar ciente dos seguintes detalhes de implementação:

  • StorageGRID suporta apenas a V1 da configuração de replicação. Isso significa que StorageGRID não suporta o uso do Filter elemento para regras e segue as convenções da V1 para exclusão de versões de objetos. Para obter detalhes, consulte "Guia do usuário do Amazon Simple Storage Service: configuração de replicação".

  • A replicação de buckets pode ser configurada em buckets versionados ou não versionados.

  • Você pode especificar um bucket de destino diferente em cada regra do XML de configuração de replicação. Um bucket de origem pode replicar para mais de um bucket de destino.

  • Os buckets de destino devem ser especificados como o URN dos endpoints do StorageGRID, conforme especificado no Tenant Manager ou na API de Gerenciamento de Tenant. Consulte "Configurar a replicação CloudMirror".

    O endpoint deve existir para que a configuração de replicação seja bem-sucedida. Se o endpoint não existir, a solicitação falhará como um 400 Bad Request. A mensagem de erro indica: Unable to save the replication policy. The specified endpoint URN does not exist: URN.

  • Você não precisa especificar um Role no XML de configuração. Esse valor não é usado pelo StorageGRID e será ignorado se for enviado.

  • Se você omitir a classe de armazenamento do XML de configuração, StorageGRID usará a classe de armazenamento STANDARD por padrão.

  • Se você excluir um objeto do bucket de origem ou excluir o próprio bucket de origem, o comportamento da replicação entre regiões será o seguinte:

    • Se você excluir o objeto ou bucket antes que ele seja replicado, o objeto/bucket não será replicado e você não será notificado.

    • Se você excluir o objeto ou bucket após ele ter sido replicado, o StorageGRID segue o comportamento padrão de exclusão do Amazon S3 para a V1 da replicação entre regiões.

PutBucketTagging

Utiliza o tagging sub-recurso para adicionar ou atualizar um conjunto de tags para um bucket. Ao adicionar tags ao bucket, esteja ciente das seguintes limitações:

  • Tanto StorageGRID quanto Amazon S3 suportam até 50 tags por bucket.

  • As tags associadas a um bucket devem ter chaves de tag exclusivas. Uma chave de tag pode ter até 128 caracteres Unicode.

  • Os valores das tags podem ter até 256 caracteres Unicode.

  • As chaves e os valores diferenciam maiúsculas de minúsculas.

Atenção: Se uma tag de política ILM não padrão for definida para este bucket, haverá uma NTAP-SG-ILM-BUCKET-TAG tag de bucket com um valor atribuído a ela. Certifique-se de que a NTAP-SG-ILM-BUCKET-TAG tag de bucket esteja incluída com o valor atribuído em todas as solicitações PutBucketTagging. Não modifique nem remova esta tag.

Nota: Esta operação irá sobrescrever quaisquer tags existentes no bucket. Se alguma tag existente for omitida do conjunto, essa tag será removida do bucket.

PutBucketVersioning

Utiliza o versioning subrecurso para definir o estado de versionamento de um bucket existente. Você pode definir o estado de versionamento com um dos seguintes valores:

  • Ativado: habilita o versionamento para os objetos no bucket. Todos os objetos adicionados ao bucket recebem um ID de versão exclusivo.

  • Suspenso: desativa o versionamento para os objetos no bucket. Todos os objetos adicionados ao bucket recebem o ID da versão null.

PutObjectLockConfiguration

Configura ou remove o modo de retenção padrão do bucket e o período de retenção padrão.

Se o período de retenção padrão for modificado, a data de retenção das versões existentes do objeto permanece a mesma e não é recalculada usando o novo período de retenção padrão.

Veja "Use a API REST S3 para configurar o S3 Object Lock" para obter informações detalhadas.