Como recuperar ou copiar objetos com base em metadados com leituras condicionais - Amazon Simple Storage Service

Como recuperar ou copiar objetos com base em metadados com leituras condicionais

Com as leituras condicionais, é possível adicionar um cabeçalho extra à solicitação de leitura para adicionar condições prévias à operação do S3. Se essas condições prévias não forem atendidas, a solicitação de leitura falhará.

É possível usar leituras condicionais em solicitações GET, HEAD ou COPY para exibir apenas um objeto com base nos metadados.

Ao fazer upload de um objeto, o Amazon S3 cria metadados controlados pelo sistema que só podem ser modificados pelo S3. Tags de entidade (ETags) e Last-Modified são exemplos de metadados controlados pelo sistema. ETag de um objeto é uma string que representa uma versão específica de um objeto. A data Last-Modified corresponde a metadados que representam a data de criação de um objeto ou a data da última modificação, a mais recente entre as duas.

Com leituras condicionais, é possível exibir um objeto com base na ETag ou na data da última modificação do objeto. É possível especificar um valor de ETag com sua solicitação e exibir o objeto somente se o valor da ETag coincidir. Isso pode garantir que você exiba ou copie apenas uma versão específica de um objeto. É possível especificar um valor de Last-Modified com sua solicitação de leitura e exibir um objeto somente se ele tiver sido modificado desde a data fornecida.

APIs compatíveis

As seguintes APIs do S3 são compatíveis com o uso de leituras condicionais:

É possível usar os cabeçalhos a seguir para exibir um objeto dependente da tag da entidade (ETag) ou da data da última modificação. Para ter mais informações sobre metadados de objetos, como ETags e Last-Modified, consulte Metadados do objeto definidos pelo sistema.

GetObject

  • If-Match: exibirá o objeto somente se a ETag corresponder à fornecida.

  • If-Modified-Since: exibirá o objeto somente se ele tiver sido modificado desde o horário especificado.

  • If-None-Match: exibirá o objeto somente se a ETag não corresponder à fornecida.

  • If-Unmodified-Since: exibirá o objeto somente se ele não tiver sido modificado desde o horário especificado.

Para ter mais informações sobre esses cabeçalhos, erros exibidos e a ordem em que o S3 processa vários cabeçalhos condicionais em uma única solicitação, consulte GetObject na Referência da API do Amazon Simple Storage Service.

HeadObject

  • If-Match: exibirá o objeto somente se a ETag corresponder à fornecida.

  • If-Modified-Since: exibirá o objeto somente se ele tiver sido modificado desde o horário especificado.

  • If-None-Match: exibirá o objeto somente se a ETag não corresponder à fornecida.

  • If-Unmodified-Since: exibirá o objeto somente se ele não tiver sido modificado desde o horário especificado.

Para ter mais informações sobre esses cabeçalhos, erros exibidos e a ordem em que o S3 processa vários cabeçalhos condicionais em uma única solicitação, consulte HeadObject na Referência da API do Amazon Simple Storage Service.

CopyObject

  • x-amz-copy-source-if-match: copiará o objeto de origem somente se a ETag corresponder à fornecida.

  • x-amz-copy-source-if-modified-since: copiará o objeto de origem somente se ele tiver sido modificado desde o horário especificado.

  • x-amz-copy-source-if-none-match: copiará o objeto de origem somente se a ETag não corresponder à fornecida.

  • x-amz-copy-source-if-unmodified-since: copiará o objeto de origem somente se ele não tiver sido modificado desde o horário especificado.

Para ter mais informações sobre esses cabeçalhos, erros exibidos e a ordem em que o S3 processa vários cabeçalhos condicionais em uma única solicitação, consulte CopyObject na Referência da API do Amazon Simple Storage Service.