Blob de instantâneo

A operação Snapshot Blob cria um instantâneo somente leitura de um blob.

Solicitação

Você pode construir a solicitação da Snapshot Blob seguinte maneira. HTTPS é recomendado. Substitua myaccount pelo nome da sua conta de armazenamento:

URI de solicitação do método PUT Versão HTTP
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=snapshot HTTP/1.1

URI do serviço de armazenamento emulado

Ao fazer uma solicitação no serviço de armazenamento emulado, especifique o nome do host do emulador e Armazenamento de Blobs do Azure porta como 127.0.0.1:10000, seguido pelo nome da conta emulada:

URI de solicitação do método PUT Versão HTTP
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=snapshot HTTP/1.1

Para obter mais informações, consulte Usar o emulador Azurite para desenvolvimento local do armazenamento do Azure.

Parâmetros do URI

Você pode especificar o parâmetro adicional a seguir no URI da solicitação.

Parâmetro Descrição
timeout Opcional. O parâmetro timeout é expresso em segundos. Para obter mais informações, consulte Configurando tempos limite para operações de Armazenamento de Blobs.

Cabeçalhos da solicitação

A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais.

Cabeçalho da solicitação Descrição
Authorization Obrigatórios. Especifica o esquema de autorização, o nome da conta e a assinatura. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure.
Date ou x-ms-date Obrigatórios. Especifica o UTC (Tempo Universal Coordenado) para a solicitação. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure.
x-ms-version Necessário para todas as solicitações autorizadas. Especifica a versão da operação a ser usada para esta solicitação. Para obter mais informações, consulte Controle de versão para os Serviços de Armazenamento do Azure.
x-ms-meta-name:value Opcional. Especifica um par nome-valor definido pelo usuário associado ao blob. Se você não especificar nenhum par nome-valor, a operação copiará os metadados do blob de base para o instantâneo. Se você especificar um ou mais pares nome-valor, o instantâneo será criado com os metadados especificados e os metadados não serão copiados do blob de base.

Observe que, a partir da versão 2009-09-19, os nomes de metadados devem seguir as regras de nomenclatura para identificadores C#. Consulte Nomenclatura e referência de contêineres, blobs e metadados para obter mais informações.
If-Modified-Since Opcional. Um valor DateTime. Especifique esse cabeçalho condicional para obter uma instantâneo do blob, somente se ele tiver sido modificado desde a data/hora especificada. Se o blob base não tiver sido modificado, o Armazenamento de Blobs retornará status código 412 (Falha na pré-condição).
If-Unmodified-Since Opcional. Um valor DateTime. Especifique esse cabeçalho condicional para obter um instantâneo do blob, somente se ele não tiver sido modificado desde a data/hora especificada. Se o blob base tiver sido modificado, o Armazenamento de Blobs retornará status código 412 (Falha na pré-condição).
If-Match Opcional. Um valor ETag. Especifique um ETag valor para que esse cabeçalho condicional leve um instantâneo do blob, somente se seu ETag valor corresponder ao valor especificado. Se os valores não corresponderem, o Armazenamento de Blobs retornará status código 412 (Falha na pré-condição).
If-None-Match Opcional. Um valor ETag.

Especifique um ETag valor para que esse cabeçalho condicional leve um instantâneo do blob, somente se seu ETag valor não corresponder ao valor especificado. Se os valores forem idênticos, o Armazenamento de Blobs retornará status código 412 (Falha na pré-condição).
x-ms-encryption-scope Opcional. Indica o escopo de criptografia a ser usado para criptografar o conteúdo da solicitação. Esse cabeçalho tem suporte na versão 2019-02-02 e posterior.
x-ms-lease-id:<ID> Opcional. Se você especificar esse cabeçalho, a operação será executada somente se ambas as seguintes condições forem atendidas:

- A concessão do blob está ativa no momento.
- A ID de concessão especificada na solicitação corresponde à do blob.

Se esse cabeçalho for especificado e qualquer uma dessas condições não for atendida, a solicitação falhará. A Snapshot Blob operação falha com status código 412 (falha na pré-condição).
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de caracteres kib (1 kibibyte) que é registrado nos logs quando o registro em log é configurado. É altamente recomendável que você use esse cabeçalho para correlacionar atividades do lado do cliente com solicitações recebidas pelo servidor. Para obter mais informações, consulte Monitorar Armazenamento de Blobs do Azure.

Essa operação também dá suporte ao uso de cabeçalhos condicionais para executar a operação, somente se uma condição especificada for atendida. Para obter mais informações, consulte Especificando cabeçalhos condicionais para operações de Armazenamento de Blobs.

Cabeçalhos de solicitação (chaves de criptografia fornecidas pelo cliente)

A partir da versão 2019-02-02, você pode especificar os cabeçalhos a seguir na solicitação para criptografar um blob com uma chave fornecida pelo cliente. A criptografia com uma chave fornecida pelo cliente (e o conjunto correspondente de cabeçalhos) é opcional. Se um blob tiver sido criptografado anteriormente com uma chave fornecida pelo cliente, esses cabeçalhos deverão ser incluídos na solicitação para concluir a operação de leitura com êxito.

Cabeçalho da solicitação Descrição
x-ms-encryption-key Obrigatórios. A chave de criptografia AES-256 codificada em Base64.
x-ms-encryption-key-sha256 Obrigatórios. O hash SHA256 codificado em Base64 da chave de criptografia.
x-ms-encryption-algorithm: AES256 Obrigatórios. Especifica o algoritmo a ser usado para criptografia. O valor deste cabeçalho deve ser AES256.

Corpo da solicitação

Nenhum.

Resposta

A resposta inclui um código de status HTTP e um conjunto de cabeçalhos de resposta.

Código de status

Uma operação bem-sucedida retorna o código de status 201 (Criado). Para obter informações sobre códigos de status, consulte Códigos de status e de erro.

Cabeçalhos de resposta

A resposta para esta operação inclui os cabeçalhos a seguir. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.

Sintaxe Descrição
x-ms-snapshot: <DateTime> Retorna um DateTime valor que identifica exclusivamente o instantâneo. O valor desse cabeçalho indica a versão instantâneo e você pode usá-la em solicitações subsequentes para acessar o instantâneo. Observe que esse valor é opaco.
ETag O ETag do instantâneo. Se a versão da solicitação for 2011-08-18 ou posterior, o ETag valor estará entre aspas. Observe que um instantâneo não pode ser gravado, portanto, o ETag de um determinado instantâneo nunca muda. No entanto, o ETag do instantâneo será diferente do blob base se novos metadados forem fornecidos com a solicitaçãoSnaphot Blob. Se nenhum metadado for especificado com a solicitação, o ETag do instantâneo será idêntico ao do blob base, no momento em que a instantâneo foi tomada.
Last-Modified A hora da última modificação do instantâneo. Para obter mais informações, consulte Representação de valores de data e hora em cabeçalhos.

Observe que uma instantâneo não pode ser gravada, portanto, a hora da última modificação de um determinado instantâneo nunca é alterada. No entanto, a hora da última modificação do instantâneo será diferente da do blob base se novos metadados forem fornecidos com a solicitaçãoSnaphot Blob. Se nenhum metadado for especificado com a solicitação, a hora da última modificação do instantâneo será idêntica à do blob base, no momento em que a instantâneo foi tomada.
x-ms-request-id Identifica exclusivamente a solicitação que foi feita e pode ser usada para solucionar problemas da solicitação. Para obter mais informações, consulte Solução de problemas de operações de API.
x-ms-version Indica a versão do Armazenamento de Blobs que foi usada para executar a solicitação. Esse cabeçalho é retornado para solicitações feitas na versão 2009-09-19 e mais recente.
Date Um valor de data/hora UTC que indica a hora em que a resposta foi iniciada. O serviço gera esse valor.
x-ms-request-server-encrypted: true/false Versão 2019-02-02 ou posterior. O valor desse cabeçalho será definido como true, se o conteúdo da solicitação for criptografado com êxito usando o algoritmo especificado. Caso contrário, o valor será definido como false.
x-ms-encryption-key-sha256 Versão 2019-02-02 ou posterior. Retornado se a solicitação usou uma chave fornecida pelo cliente para criptografia. O cliente pode garantir que o conteúdo da solicitação seja criptografado com êxito usando a chave fornecida.
x-ms-encryption-scope Versão 2019-02-02 ou posterior. Retornado se a solicitação usou um escopo de criptografia. O cliente pode garantir que o conteúdo da solicitação seja criptografado com êxito usando o escopo de criptografia.
x-ms-version-id: <DateTime> Versão 2019-12-12 e posterior. Retorna um valor opaco DateTime que identifica exclusivamente o blob. O valor desse cabeçalho indica a versão do blob e você pode usá-lo em solicitações subsequentes para acessar o blob.
x-ms-client-request-id Pode ser usado para solucionar problemas de solicitações e respostas correspondentes. O valor desse cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho, se ele estiver presente na solicitação. O valor é no máximo 1.024 caracteres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente na solicitação, ele não estará presente na resposta.

Corpo da resposta

Nenhum.

Autorização

A autorização é necessária ao chamar qualquer operação de acesso a dados no Armazenamento do Azure. Você pode autorizar a Snapshot Blob operação, conforme descrito abaixo.

O Armazenamento do Azure dá suporte ao uso de Microsoft Entra ID para autorizar solicitações para dados de blob. Com Microsoft Entra ID, você pode usar o RBAC (controle de acesso baseado em função) do Azure para conceder permissões a uma entidade de segurança. A entidade de segurança pode ser um usuário, grupo, entidade de serviço de aplicativo ou identidade gerenciada do Azure. A entidade de segurança é autenticada por Microsoft Entra ID para retornar um token OAuth 2.0. Em seguida, o token pode ser usado para autorizar uma solicitação no serviço de Blob.

Para saber mais sobre a autorização usando Microsoft Entra ID, consulte Autorizar o acesso a blobs usando Microsoft Entra ID.

Permissões

Veja abaixo a ação RBAC necessária para que um usuário, grupo ou entidade de serviço Microsoft Entra chame a Snapshot Blob operação e a função RBAC interna do Azure com menos privilégios que inclua esta ação:

Para saber mais sobre como atribuir funções usando o RBAC do Azure, confira Atribuir uma função do Azure para acesso aos dados de blob.

Comentários

Os instantâneos fornecem versões somente leitura de blobs. Depois de criar um instantâneo, você pode lê-lo, copiá-lo ou excluí-lo, mas não pode modificá-lo.

Um instantâneo proporciona um modo conveniente de fazer backup de dados de blob. Você pode usar um instantâneo para restaurar um blob para uma versão anterior chamando Copiar Blob, para substituir um blob base por sua instantâneo.

Quando você cria um instantâneo, o Armazenamento de Blobs retorna um DateTime valor que identifica exclusivamente o instantâneo em relação ao blob base. Esse valor pode ser usado para executar operações adicionais no instantâneo. Observe que você deve tratar esse DateTime valor como opaco.

O DateTime valor identifica o instantâneo no URI. Por exemplo, um blob de base e seus instantâneos têm URIs semelhantes ao seguinte:

  • Blob base: http://myaccount.blob.core.windows.net/mycontainer/myblob

  • Instantâneo: http://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

Observe que sempre que você chama a Snapshot Blob operação, cria uma nova instantâneo, com um valor exclusivoDateTime. Um blob pode dar suporte a qualquer quantidade de instantâneos. Instantâneos existentes nunca são substituídos. Exclua-os explicitamente chamando Excluir Blob e definindo o x-ms-include-snapshots cabeçalho como o valor apropriado.

Uma chamada bem-sucedida para Snapshot Blob retorna um DateTime valor no cabeçalho de x-ms-snapshot resposta. Em seguida, você pode usar esse DateTime valor para executar operações de leitura, exclusão ou cópia em uma versão instantâneo específica. Você pode chamar qualquer operação de Armazenamento de Blobs válida para um instantâneo especificando ?snapshot=<DateTime> após o nome do blob.

Quando você cria um instantâneo de um blob, as propriedades do sistema a seguir são copiadas no instantâneo com os mesmos valores:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • x-ms-blob-sequence-number (somente para blobs de páginas)

  • x-ms-blob-committed-block-count (somente para blobs de acréscimo)

  • x-ms-copy-id (versão 2012-02-12 e posterior)

  • x-ms-copy-status (versão 2012-02-12 e posterior)

  • x-ms-copy-source (versão 2012-02-12 e posterior)

  • x-ms-copy-progress (versão 2012-02-12 e posterior)

  • x-ms-copy-completion-time (versão 2012-02-12 e posterior)

  • x-ms-copy-status-description (versão 2012-02-12 e posterior)

A lista de bloqueios confirmada do blob base também será copiada para o instantâneo, se o blob for um blob de blocos. Os blocos não confirmados não são copiados.

O blob instantâneo é sempre do mesmo tamanho que o blob base no momento em que a instantâneo é tomada. O valor do Content-Length cabeçalho do blob de instantâneo será o mesmo do blob base.

Você pode especificar um ou mais novos valores de metadados para o instantâneo especificando o cabeçalho x-ms-meta-name:value na solicitação. Se esse cabeçalho não for especificado, os metadados associados ao blob base serão copiados para o instantâneo.

Todas as marcas associadas ao blob base são copiadas para o instantâneo. Não é possível definir novos valores de marca para o instantâneo.

Você pode especificar cabeçalhos condicionais na solicitação para obter um instantâneo do blob somente se uma condição for atendida. Se a condição especificada não for atendida, a instantâneo não será criada. O serviço retorna status código 412 (Falha de Pré-condição), juntamente com informações de erro adicionais sobre a condição não atendida.

Se o blob base tiver uma concessão ativa, você poderá usar uma instantâneo do blob, desde que qualquer uma das seguintes condições seja verdadeira à solicitação:

  • O cabeçalho condicional x-ms-lease-id está especificado, e a ID da concessão ativa para o blob de base está incluída na solicitação. Essa condição especifica que o instantâneo ser criado somente se a concessão estiver ativa e a ID de concessão especificada corresponder à associada ao blob.

  • O x-ms-lease-id cabeçalho não é especificado, nesse caso, a concessão de gravação exclusiva é ignorada.

Observe que uma concessão associada ao blob base não é copiada para o instantâneo. Instantâneos não podem ser concedidos.

Quando você copia um blob base usando a operação Copiar Blob , todos os instantâneos do blob base não são copiados para o blob de destino. Quando um blob de destino é substituído por uma cópia, todos os instantâneos associados ao blob de destino permanecem intactos sob o seu nome.

Você pode copiar um blob de instantâneo sobre o blob de base para restaurar uma versão anterior de um blob. O instantâneo permanece, mas o blob de base é substituído por uma cópia que pode ser lida e gravada.

Observação

Promover uma instantâneo não incorre em um custo adicional para recursos de armazenamento. Isso ocorre porque blocos ou páginas são compartilhados entre o instantâneo e o blob base.

Você pode definir uma camada de blob em um instantâneo, começando com a versão REST 2019-12-12. Se uma camada for definida em um blob raiz, todos os instantâneos herdarão a camada do blob base. Uma instantâneo em um blob arquivado falhará. Definir explicitamente a camada em um objeto resulta na cobrança para o tamanho total do objeto. Tirar uma instantâneo de um blob que tem o conjunto de camadas resulta na cobrança de cópia completa do blob raiz e do instantâneo. Para obter informações detalhadas sobre camadas de nível de blob de blocos, consulte Camadas de armazenamento frequentes, esporádicas e de arquivos.

Há algumas diferenças entre contas de Armazenamento Premium do Azure e contas de armazenamento padrão, em termos de instantâneos:

  • O número de instantâneos por blob de página em uma conta Armazenamento Premium é limitado a 100. Se esse limite for excedido, a operação retornará o Snapshot Blob código de erro 409 (Contagem de Instantâneos Excedida).

  • Você pode tirar uma instantâneo de um blob de páginas em uma conta Armazenamento Premium uma vez a cada dez minutos. Se essa taxa for excedida, a operação retornará o Snapshot Blob código de erro 409 (Taxa de Operação de Instantâneo Excedida).

  • Você não pode ler uma instantâneo de um blob de páginas em uma conta Armazenamento Premium usando Obter Blob. Nessa situação, o serviço retorna o código de erro 400 (Operação Inválida). No entanto, você pode chamar Obter Propriedades do Blob e Obter Metadados de Blob em um instantâneo.

    Para ler um instantâneo, você pode usar a operação Copiar Blob para copiar um instantâneo para outro blob de páginas na conta. O blob de destino da operação de cópia não deve ter todos os instantâneos existentes. Se o blob de destino tiver instantâneos, Copy Blob retornará o código de erro 409 (SnapshotsPresent).

Para obter mais informações, consulte Usando operações de Armazenamento de Blobs com o Azure Armazenamento Premium.

Quando o controle de versão está habilitado, a criação de um instantâneo de um blob também gera uma nova versão e salva a versão anterior do blob base. O x-ms-version-id parâmetro retorna um valor opaco DateTime para a nova versão do blob.

Cobrança

As solicitações de preços podem ser originadas de clientes que usam APIs de Armazenamento de Blobs, diretamente por meio da API REST do Armazenamento de Blobs ou de uma biblioteca de clientes do Armazenamento do Azure. Essas solicitações acumulam encargos por transação. O tipo de transação afeta a forma como a conta é cobrada. Por exemplo, as transações de leitura se acumulam em uma categoria de cobrança diferente das transações de gravação. A tabela a seguir mostra a categoria de cobrança para Snapshot Blob solicitações com base no tipo de conta de armazenamento:

Operação Tipo de conta de armazenamento Categoria de cobrança
Blob de instantâneo Blob de blocos Premium
Uso geral v2 Standard
Uso geral v1 Standard
Operações de leitura

Para saber mais sobre os preços para a categoria de cobrança especificada, consulte Armazenamento de Blobs do Azure Preços.

Confira também

Como criar um instantâneo de um blob

Autorizar solicitações para o Armazenamento do Azure

Status e códigos de erro

Códigos de erro do Armazenamento de Blobs