View a markdown version of this page

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 de 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 de 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.

  • If-Match: copia o objeto somente se a ETag corresponder à fornecida. If-Match exige o valor da ETag como uma string.

  • If-None-Match: copia o objeto somente se a ETag não corresponder à fornecida. If-None-Match exige o caractere “*” (asterisco).

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 de API do Amazon Simple Storage Service”.

Consulte informações sobre como usar cabeçalhos condicionais para evitar substituições durante operações de gravação em Como evitar substituições de objeto com gravações condicionais.