Metadados do objeto

Nesta página, você encontrará informações sobre os campos de metadados que são armazenados junto com objetos no Cloud Storage. Para mais informações, consulte Como ver e editar metadados de objetos.

Introdução

Os objetos armazenados no Cloud Storage têm metadados associados a eles. Os metadados identificam propriedades do objeto e especificam como ele será tratado quando for acessado. Os metadados têm o formato de pares de chave-valor. Por exemplo, a classe de armazenamento de um objeto é representada pela entrada de metadados storageClass:STANDARD, em que storageClass é a chave dos metadados (todos os objetos estão associados a uma chave desse tipo) e STANDARD especifica o valor desse objeto (esse valor é variável dependendo do objeto).

A mutabilidade dos metadados varia: alguns podem ser editados a qualquer momento, uns só podem ser definidos no momento em que o objeto é criado e outros podem apenas ser visualizados. Por exemplo, é possível editar o valor dos metadados Cache-Control em qualquer momento, mas os metadados storageClass são atribuíveis somente quando o objeto é criado ou gravado novamente. Além disso, não é possível editar diretamente o valor dos metadados generation, embora o valor de generation seja alterado quando o objeto é substituído.

Metadados editáveis

Há duas categorias de metadados que os usuários podem alterar nos objetos:

  • Metadados de chave fixa: metadados que têm chaves definidas, mas permitem a especificação de um valor.

  • Metadados personalizados: metadados que são adicionados com a especificação de uma chave e um valor associados a ela.

Ao editar os metadados, evite caracteres não ASCII, porque eles não são permitidos em cabeçalhos HTTP, que são usados pela API XML. Ao usar essa API, também há um limite de 16 KB para o tamanho combinado do URL de solicitação e dos cabeçalhos HTTP. Por isso, leve esse limite em consideração ao definir o tamanho total dos metadados.

Metadados de chave fixa

É possível editar metadados a seguir nos objetos. No entanto, você precisa ter permissões suficientes para fazer isso:

Metadados de controle de acesso

O Cloud Storage usa o Cloud Identity and Access Management (Cloud IAM) e as listas de controle de acesso (ACLs, na sigla em inglês) para controlar o acesso a objetos. Use esses links para saber mais sobre esses métodos de controle de acesso e metadados associados.

Cache-Control

Os metadados de Cache-Control especificam dois aspectos diferentes de como os dados são exibidos a partir do Cloud Storage: se eles podem ser armazenados em cache e se podem ser transformados.

Como armazenar dados em cache

Com os metadados Cache-Control, é possível controlar se e por quanto tempo os caches do navegador e da Internet podem armazenar seus objetos, que poderão ser exibidos para atender a solicitações futuras. Os metadados Cache-Control se aplicam somente ao acessar objetos que:

Definir o valor de Cache-Control como public significa que o objeto pode ser armazenado em cache em qualquer lugar. Por outro lado, definir esse valor como private significa que o objeto pode ser armazenado em cache na máquina local do solicitante. Por fim, definir o valor como no-cache significa que o objeto pode ser armazenado em cache, mas não pode ser usado para atender a solicitações futuras, a menos que primeiramente seja validado pelo Cloud Storage.

Também é possível adicionar um valor de max-age=[TIME_IN_SECONDS] aos metadados Cache-Control. O valor de max-age indica o período que um objeto pode permanecer armazenado em cache antes de ser considerado desatualizado. Objetos desatualizados não são exibidos a partir de caches, exceto em circunstâncias especiais (em inglês).

Se um objeto relevante não tiver uma entrada de metadados Cache-Control, o Cloud Storage usará o valor padrão:

  • public, max-age=3600.

Se você permitir o armazenamento em cache, talvez continue recebendo versões antigas de um objeto ao fazer o download dele, mesmo depois de fazer o upload de uma versão mais recente. Isso ocorre porque a versão mais antiga permanece "atual" no cache por um período determinado pelo valor de max-age. Além disso, como os objetos podem ser armazenados em cache em vários locais na Internet, não há como forçar um objeto que esteja armazenado em cache a expirar globalmente. Se você quiser impedir a exibição de versões armazenadas em cache de objetos de leitura pública, defina Cache-Control:no-cache, max-age=0 no objeto.

Como transformar dados

Com os metadados Cache-Control, também é possível exibir objetos da maneira como estão armazenados, sem aplicar quaisquer transformações aos dados, como a remoção de codificação de conteúdo gzip para clientes incompatíveis. Para exibir um objeto como ele está, defina Cache-Control:no-transform.

Content-Disposition

Os metadados Content-Disposition especificam as informações de apresentação dos dados que estão sendo transmitidos. Ao definir Content-Disposition, você controla o estilo de apresentação do conteúdo. Por exemplo, é possível determinar se um anexo será exibido automaticamente ou se será necessária alguma ação do usuário para abri-lo. Consulte https://tools.ietf.org/html/rfc6266 (em inglês) para mais informações sobre a especificação Content-Disposition.

Content-Encoding

Use os metadados Content-Encoding para indicar que um objeto está compactado, enquanto mantém os metadados Content-Type subjacentes dele. Por exemplo, um arquivo de texto compactado como .gzip pode ter essas duas características indicadas, respectivamente, em Content-Type e Content-Encoding. Verifique se os arquivos estão realmente compactados usando os metadados Content-Encoding especificados antes de fazer upload deles. Caso contrário, poderá ocorrer um comportamento inesperado quando você tentar fazer o download dos objetos. Para mais informações, consulte a página sobre transcodificação.

No caso de conteúdo que possa ser compactado, como texto, usar Content-Encoding: gzip economiza custos de rede e de armazenamento, além de melhorar o desempenho na exibição. No entanto, para conteúdo que já está compactado de maneira intrínseca, como arquivos e muitos formatos de mídia, aplicar outro nível de compactação e marcá-lo nos metadados Content-Encoding normalmente é prejudicial em termos de tamanho e desempenho do objeto. Portanto, evite fazer isso.

Content-Language

Os metadados Content-Language indicam o(s) idioma(s) pretendido(s) para o objeto. Consulte os códigos de idioma ISO 639-1 (em inglês) para ver os valores aceitos nesses metadados.

Content-Type

Os metadados mais comumente definidos são os de Content-Type, também conhecidos como tipo de mídia. Os navegadores usam esses metadados para renderizar objetos corretamente. Todos os objetos contam com um valor especificado nos metadados Content-Type. No entanto, esse valor não precisa corresponder ao tipo subjacente do objeto. Por exemplo, caso o usuário que fez o upload não especificou o valor de Content-Type e não é possível determiná-lo, esses metadados são definidos como application/octet-stream ou application/x-www-form-urlencoded, dependendo do método utilizado no upload do objeto. Consulte a página sobre tipos de mídia da IANA para ver uma lista de tipos de conteúdo válidos.

Metadados personalizados

Os metadados personalizados são aqueles que você pode adicionar e remover. Para criar metadados personalizados, especifique um valor e uma chave. Depois de criar um par de key:value para os metadados personalizados, é possível excluir a chave ou alterar o valor.

A página sobre visualização e edição de metadados inclui informações sobre a configuração de metadados personalizados. O uso de metadados personalizados incorre em custos de armazenamento e de rede.

Metadados não editáveis

Alguns metadados não podem ser editados diretamente. Eles são definidos no momento da criação ou regravação do objeto. Como parte da criação ou regravação do objeto, é possíve definir alguns desses metadados, como a classe de armazenamento do objeto ou chaves de criptografia gerenciadas pelo cliente. Outros metadados, como o número de geração do objeto ou a hora de criação, são adicionados automaticamente e podem ser apenas visualizados.

A seguir