Trabalhar com metadados de objeto - Amazon Simple Storage Service

Trabalhar com metadados de objeto

Você pode definir metadados de objeto no Amazon S3 no momento do upload do objeto. Metadados de objeto são um conjunto de pares de nome-valor. Após fazer upload do objeto, você não pode modificar seus metadados. A única forma de modificar metadados de objeto é fazer uma cópia do objeto e definir os metadados.

Ao criar um objeto, você também especifica o nome da chave, que identifica exclusivamente o objeto no bucket. A chave de objeto (ou nome da chave) identifica o objeto em um bucket do Amazon S3 de maneira exclusiva. Para obter mais informações, consulte Criar nomes de chave de objeto.

Há dois tipos de metadados no Amazon S3: definidos pelo sistema e definidos pelo usuário. As seções a seguir fornecem mais informações sobre metadados definidos pelo sistema e definidos pelo usuário. Para obter mais informações sobre como editar metadados usando o console do Amazon S3, consulte Editar metadados de objeto no console do Amazon S3.

Metadados do objeto definidos pelo sistema

Para cada objeto armazenado em um bucket, o Amazon S3 mantém um conjunto de metadados do sistema. O Amazon S3 processa estes metadados do sistema conforme necessário. Por exemplo, o Amazon S3 mantém a data de criação e o tamanho dos metadados e usa essas informações como parte do gerenciamento do objeto.

Existem duas categorias de metadados de sistema:

  • Controlados pelo sistema: os metadados, como a data de criação do objeto, são controlados pelo sistema e somente o Amazon S3 pode modificar o valor.

  • Controlados pelo usuário: outros metadados de sistema, como a classe de armazenamento configurada para o objeto e se o objeto tem criptografia habilitada no lado do servidor, são exemplos cujos valores são controlados por você. Se o bucket está configurado como um site, você pode querer redirecionar uma solicitação de página para outra página ou para um URL externo. Nesse caso, uma página é um objeto no bucket. O Amazon S3 armazena o valor de redirecionamento da página como metadados do sistema com valores que você controla.

    Ao criar objetos, você pode configurar os valores desses itens de metadados de sistema ou atualizar os valores quando necessário. Para obter mais informações sobre classes de armazenamento, consulte Uso de classes de armazenamento do Amazon S3.

    O Amazon S3 usa chaves AWS KMS para criptografar seus objetos do Amazon S3. O AWS KMS criptografa apenas os dados do objeto. A soma de verificação e o algoritmo especificado são armazenados como parte dos metadados do objeto. Se a criptografia no lado do servidor for solicitada para o objeto, a soma de verificação será armazenada em formato criptografado. Para obter mais informações sobre criptografia no lado do servidor, consulte Proteger dados com criptografia.

nota

O cabeçalho da solicitação PUT é limitado a 8 KB. No cabeçalho da solicitação PUT, os metadados definidos pelo sistema são limitados a 2 KB. O tamanho de metadados definidos pelo sistema é medido pela soma do número de bytes na codificação US-ASCII de cada chave e valor.

A tabela a seguir fornece uma lista dos metadados definidos por sistema e se você pode atualizá-los.

Nome Descrição O usuário pode modificar o valor?
Date A data e hora atual. Não
Cache-Control Um campo de cabeçalho geral usado para especificar políticas de armazenamento em cache. Sim
Content-Disposition Informações de apresentação do objeto. Sim
Content-Length O tamanho do objeto em bytes. Não
Content-Type O tipo do objeto. Sim
Last-Modified

A data de criação do objeto ou data da última modificação, o que aconteceu por último. Para carregamentos fracionados, a data de criação do objeto é a data de início do respectivo carregamento.

Não
ETag Uma tag de entidade (ETag) que representa uma versão específica de um objeto. Para objetos que não são carregados como um carregamento fracionado e não são criptografados ou são criptografados por criptografia no servidor com chaves gerenciadas pelo Simple Storage Service (Amazon S3) (SSE-S3), a ETag é um resumo MD5 dos dados. Não
x-amz-server-side-encryption Um cabeçalho que indica se a criptografia do lado do servidor está ativada para o objeto e se essa criptografia está usando as chaves do AWS Key Management Service (AWS KMS) (SSE-KMS) ou usando as chaves de criptografia gerenciadas pelo Amazon S3 (SSE-S3). Para ter mais informações, consulte Proteger os dados usando criptografia do lado do servidor. Sim
x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-sha1, x-amz-checksum-sha256 Cabeçalhos que contêm a soma de verificação ou o resumo do objeto. No máximo um desses cabeçalhos será definido por vez, dependendo do algoritmo de soma de verificação que você instruir o Amazon S3 a usar. Para obter mais informações sobre a escolha do algoritmo de soma de verificação, consulte Verificar a integridade do objeto. Não
x-amz-version-id A versão do objeto. Quando você ativa o versionamento em um bucket, o Amazon S3 atribui um ID de versão aos objetos adicionados ao bucket. Para ter mais informações, consulte Usando o versionamento em buckets do S3. Não
x-amz-delete-marker Um marcador booleano que indica se o objeto é um marcador de exclusão. Esse marcador é usado somente em buckets com versionamento ativado. Não
x-amz-storage-class A classe de armazenamento usada para armazenar o objeto. Para ter mais informações, consulte Uso de classes de armazenamento do Amazon S3. Sim
x-amz-website-redirect-location Um cabeçalho que redireciona solicitações do objeto associado para outro objeto no mesmo bucket ou para um URL externo. Para ter mais informações, consulte (Opcional) Configurar um redirecionamento de uma página da Web. Sim
x-amz-server-side-encryption-aws-kms-key-id Um cabeçalho que indica o ID da chave do KMS de criptografia simétrica do AWS KMS que foi usada para criptografar o objeto. Esse cabeçalho é usado somente quando o cabeçalho x-amz-server-side-encryption está presente e tem o valor de aws:kms. Sim
x-amz-server-side-encryption-customer-algorithm Um cabeçalho que indica se a criptografia do lado do servidor com as chaves de criptografia fornecidas pelo cliente (SSE-C) está ativada. Para ter mais informações, consulte Como usar criptografia do lado do servidor com chaves fornecidas pelo cliente (SSE-C). Sim
x-amz-tagging O conjunto de etiquetas do objeto. O conjunto de etiquetas deve ser codificado como parâmetros de consulta de URL. Sim

Metadados do objeto definidos pelo usuário

Ao fazer upload de um objeto, você também pode atribuir metadados ao objeto. Você fornece essas informações opcionais como um par de nome-valor (valor-chave) quando envia uma solicitação PUT ou POST para criar o objeto. Ao fazer upload de objetos usando a API REST, os nomes de metadados opcionais definidos pelo usuário devem começar com x-amz-meta-, para diferenciá-los de outros cabeçalhos HTTP. Quando você recupera o objeto usando a API REST, o prefixo é retornado. Ao fazer upload de objetos usando a API SOAP, o prefixo não é obrigatório. Quando você recupera o objeto usando SOAP API, o prefixo é removido, independentemente da API que você usou para fazer upload do objeto.

nota

O suporte a SOAP via HTTP está obsoleto, mas o SOAP continua disponível via HTTPS. Os novos recursos do Amazon S3 não são compatíveis com SOAP. Em vez de SOAP, recomendamos usar a API REST ou os AWS SDKs.

Quando os metadados são recuperados por meio da API REST, o Amazon S3 combina os cabeçalhos que têm o mesmo nome (sem distinção entre letras maiúsculas e minúsculas) em uma lista delimitada por vírgulas. Se alguns metadados contêm caracteres não imprimíveis, eles não são retornados. Em vez disso, o cabeçalho x-amz-missing-meta é retornado com o valor do número de entradas de metadados não imprimíveis. A ação HeadObject recupera metadados de um objeto sem retornar o próprio objeto. Essa operação é útil se você estiver interessado apenas nos metadados de um objeto. Para usar HEAD, você deve ter acesso READ ao objeto. Para obter mais informações, consulte HeadObject na Referência de API do Amazon Simple Storage Service.

Metadados definidos pelo usuário são um conjunto de pares chave-valor. O Amazon S3 armazena chaves de metadados definidas pelo usuário em minúsculas.

O Amazon S3 permite caracteres Unicode arbitrários em seus valores de metadados.

Para evitar problemas em torno da apresentação desses valores de metadados, é necessário estar em conformidade com o uso de caracteres US-ASCII ao usar REST e UTF-8 ao usar SOAP ou uploads baseados em navegador via POST.

Ao usar caracteres não US-ASCII em seus valores de metadados, a string Unicode fornecida é examinada quanto a caracteres não US-ASCII. Os caracteres desses cabeçalhos são decodificados conforme o RFC 2047 antes do armazenamento e codificados de acordo com o RFC 2047 antes de retornar para garantir que eles possam ser enviados por e-mail com segurança. Se a string contiver apenas caracteres US-ASCII, ela será apresentada como está.

Veja um exemplo a seguir.

PUT /Key HTTP/1.1 Host: DOC-EXAMPLE-BUCKET1.s3.amazonaws.com x-amz-meta-nonascii: ÄMÄZÕÑ S3 HEAD /Key HTTP/1.1 Host: DOC-EXAMPLE-BUCKET1.s3.amazonaws.com x-amz-meta-nonascii: =?UTF-8?B?w4PChE3Dg8KEWsODwpXDg8KRIFMz?= PUT /Key HTTP/1.1 Host: DOC-EXAMPLE-BUCKET1.s3.amazonaws.com x-amz-meta-ascii: AMAZONS3 HEAD /Key HTTP/1.1 Host: DOC-EXAMPLE-BUCKET1.s3.amazonaws.com x-amz-meta-ascii: AMAZONS3
nota

O cabeçalho da solicitação PUT é limitado a 8 KB. No cabeçalho da solicitação PUT, os metadados definidos pelo usuário são limitados a 2 KB. O tamanho de metadados definidos pelo usuário é medido pela soma do número de bytes na codificação UTF-8 de cada chave e valor.

Para obter informações sobre como alterar os metadados do objeto depois do upload criando uma cópia, modificando e substituindo o objeto antigo ou criando outra versão dele, consulte Editar metadados de objeto no console do Amazon S3.