Blob de Instantâneo

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

Pedir

Pode construir o pedido da Snapshot Blob seguinte forma. É recomendado HTTPS. Substitua myaccount pelo nome da sua conta de armazenamento:

URI do pedido 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

Quando fizer um pedido relativamente ao serviço de armazenamento emulado, especifique o nome de anfitrião do emulador e Armazenamento de Blobs do Azure porta como 127.0.0.1:10000, seguido do nome da conta emulado:

URI do pedido 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, veja Utilizar o emulador do Azurite para o desenvolvimento local do Armazenamento do Azure.

Parâmetros do URI

Pode especificar o seguinte parâmetro adicional no URI do pedido.

Parâmetro Description
timeout Opcional. O timeout parâmetro é expresso em segundos. Para obter mais informações, veja Setting timeouts for Blob Storage operations (Definir tempos limite para operações de Armazenamento de Blobs).

Cabeçalhos do pedido

A tabela seguinte descreve os cabeçalhos de pedido obrigatórios e opcionais.

Cabeçalho do pedido Description
Authorization Obrigatório. Especifica o esquema de autorização, o nome da conta e a assinatura. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure.
Date ou x-ms-date Obrigatório. Especifica a Hora Universal Coordenada (UTC) do pedido. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure.
x-ms-version Necessário para todos os pedidos autorizados. Especifica a versão da operação a utilizar para este pedido. Para obter mais informações, veja Controlo de versões dos serviços de Armazenamento do Azure.
x-ms-meta-name:value Opcional. Especifica um par de nome-valor definido pelo utilizador associado ao blob. Se não especificar nenhum par nome-valor, a operação copia os metadados do blob base para o instantâneo. Se especificar um ou mais pares nome-valor, o instantâneo é criado com os metadados especificados e os metadados não são copiados do blob base.

Tenha em atenção que, a partir da versão 2009-09-19, os nomes de metadados têm de cumprir as regras de nomenclatura dos identificadores C#. Veja Naming and referencing containers, blobs, and metadata (Atribuir nomes e referenciar contentores, blobs e metadados ) para obter mais informações.
If-Modified-Since Opcional. Um DateTime valor. Especifique este cabeçalho condicional para tirar um instantâneo do blob, apenas se tiver sido modificado desde a data/hora especificada. Se o blob base não tiver sido modificado, o Armazenamento de Blobs devolve o código de estado 412 (Falha na Pré-condição).
If-Unmodified-Since Opcional. Um DateTime valor. Especifique este cabeçalho condicional para tirar um instantâneo do blob, apenas se não tiver sido modificado desde a data/hora especificada. Se o blob base tiver sido modificado, o Armazenamento de Blobs devolve o código de estado 412 (Falha na Pré-condição).
If-Match Opcional. Um ETag valor. Especifique um ETag valor para este cabeçalho condicional para tirar um instantâneo do blob, apenas se o respetivo ETag valor corresponder ao valor especificado. Se os valores não corresponderem, o Armazenamento de Blobs devolve o código de estado 412 (Falha na Pré-condição).
If-None-Match Opcional. Um ETag valor.

Especifique um ETag valor para este cabeçalho condicional para tirar um instantâneo do blob, apenas se o respetivo ETag valor não corresponder ao valor especificado. Se os valores forem idênticos, o Armazenamento de Blobs devolve o código de estado 412 (Falha na Pré-condição).
x-ms-encryption-scope Opcional. Indica o âmbito de encriptação a utilizar para encriptar o conteúdo do pedido. Este cabeçalho é suportado na versão 2019-02-02 e posterior.
x-ms-lease-id:<ID> Opcional. Se especificar este cabeçalho, a operação só será efetuada se ambas as condições seguintes forem cumpridas:

- A concessão do blob está atualmente ativa.
- O ID de concessão especificado no pedido corresponde ao do blob.

Se este cabeçalho for especificado e qualquer uma destas condições não for cumprida, o pedido falhará. A Snapshot Blob operação falha com o código de estado 412 (Falha na Pré-condição).
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de carateres de 1 kibibyte (KiB) que é registado nos registos quando o registo é configurado. Recomendamos vivamente que utilize este cabeçalho para correlacionar as atividades do lado do cliente com os pedidos que o servidor recebe. Para obter mais informações, veja Monitorizar Armazenamento de Blobs do Azure.

Esta operação também suporta a utilização de cabeçalhos condicionais para executar a operação, apenas se for cumprida uma condição especificada. Para obter mais informações, veja Especificar cabeçalhos condicionais para operações de Armazenamento de Blobs.

Cabeçalhos de pedido (chaves de encriptação fornecidas pelo cliente)

A partir da versão 2019-02-02, pode especificar os seguintes cabeçalhos no pedido para encriptar um blob com uma chave fornecida pelo cliente. A encriptação com uma chave fornecida pelo cliente (e o conjunto de cabeçalhos correspondente) é opcional. Se um blob tiver sido encriptado anteriormente com uma chave fornecida pelo cliente, estes cabeçalhos têm de ser incluídos no pedido para concluir a operação de leitura com êxito.

Cabeçalho do pedido Description
x-ms-encryption-key Obrigatório. A chave de encriptação AES-256 codificada com Base64.
x-ms-encryption-key-sha256 Obrigatório. O hash SHA256 codificado com Base64 da chave de encriptação.
x-ms-encryption-algorithm: AES256 Obrigatório. Especifica o algoritmo a utilizar para encriptação. O valor deste cabeçalho tem de ser AES256.

Corpo do pedido

Nenhum.

Resposta

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

Código de estado

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

Cabeçalhos de resposta

A resposta para esta operação inclui os seguintes cabeçalhos. 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.

Syntax Descrição
x-ms-snapshot: <DateTime> Devolve um DateTime valor que identifica exclusivamente o instantâneo. O valor deste cabeçalho indica a versão do instantâneo e pode utilizá-lo em pedidos subsequentes para aceder ao instantâneo. Tenha em atenção que este valor é opaco.
ETag O ETag do instantâneo. Se a versão do pedido for 2011-08-18 ou posterior, o ETag valor estará entre aspas. Tenha em atenção que não é possível escrever um instantâneo, pelo que o ETag de um instantâneo específico nunca é alterado. No entanto, o ETag instantâneo será diferente do do blob base se forem fornecidos novos metadados com o Snaphot Blob pedido. Se não forem especificados metadados com o pedido, o ETag instantâneo será idêntico ao do blob base, no momento em que o instantâneo foi tirado.
Last-Modified A última hora modificada do instantâneo. Para obter mais informações, veja Representação dos valores de data/hora nos cabeçalhos.

Tenha em atenção que não é possível escrever um instantâneo, pelo que a última hora modificada de um determinado instantâneo nunca é alterada. No entanto, a última hora modificada do instantâneo será diferente da do blob base se forem fornecidos novos metadados com o Snaphot Blob pedido. Se não forem especificados metadados com o pedido, a última hora modificada do instantâneo será idêntica à do blob base, no momento em que o instantâneo foi tirado.
x-ms-request-id Identifica exclusivamente o pedido que foi feito e pode ser utilizado para resolver o pedido. Para obter mais informações, veja Resolver problemas de operações da API.
x-ms-version Indica a versão do Armazenamento de Blobs que foi utilizada para executar o pedido. Este cabeçalho é devolvido para pedidos feitos na versão 2009-09-19 e posterior.
Date Um valor de data/hora UTC que indica a hora em que a resposta foi iniciada. O serviço gera este valor.
x-ms-request-server-encrypted: true/false Versão 2019-02-02 ou posterior. O valor deste cabeçalho está definido como true, se o conteúdo do pedido for encriptado com êxito com o algoritmo especificado. Caso contrário, o valor está definido como false.
x-ms-encryption-key-sha256 Versão 2019-02-02 ou posterior. Devolvido se o pedido tiver utilizado uma chave fornecida pelo cliente para encriptação. O cliente pode garantir que os conteúdos do pedido são encriptados com êxito com a chave fornecida.
x-ms-encryption-scope Versão 2019-02-02 ou posterior. Devolvido se o pedido tiver utilizado um âmbito de encriptação. O cliente pode garantir que os conteúdos do pedido são encriptados com êxito através do âmbito de encriptação.
x-ms-version-id: <DateTime> Versão 2019-12-12 e posterior. Devolve um valor opaco DateTime que identifica exclusivamente o blob. O valor deste cabeçalho indica a versão do blob e pode utilizá-lo em pedidos subsequentes para aceder ao blob.
x-ms-client-request-id Pode ser utilizado para resolver problemas de pedidos e respostas correspondentes. O valor deste cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho, se estiver presente no pedido. O valor é, no máximo, 1024 carateres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente no pedido, 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. Pode autorizar a Snapshot Blob operação conforme descrito abaixo.

O Armazenamento do Azure suporta a utilização de Microsoft Entra ID para autorizar pedidos para dados de blobs. Com Microsoft Entra ID, pode utilizar o controlo de acesso baseado em funções do Azure (RBAC do Azure) para conceder permissões a um principal de segurança. O principal de segurança pode ser um utilizador, grupo, principal de serviço de aplicação ou identidade gerida do Azure. O principal de segurança é autenticado por Microsoft Entra ID para devolver um token OAuth 2.0. Em seguida, o token pode ser utilizado para autorizar um pedido contra o serviço Blob.

Para saber mais sobre a autorização através de Microsoft Entra ID, veja Autorizar o acesso a blobs com Microsoft Entra ID.

Permissões

Abaixo estão listadas as ações RBAC necessárias para que um utilizador, grupo ou principal de serviço Microsoft Entra chame a Snapshot Blob operação e a função RBAC do Azure com menos privilégios que inclua esta ação:

Para saber mais sobre como atribuir funções com o RBAC do Azure, veja Atribuir uma função do Azure para acesso a dados de blobs.

Observações

Os instantâneos fornecem versões só de leitura de blobs. Depois de criar um instantâneo, pode lê-lo, copiar ou eliminá-lo, mas não pode modificá-lo.

Um instantâneo fornece uma forma conveniente de fazer uma cópia de segurança dos dados de blobs. Pode utilizar um instantâneo para restaurar um blob para uma versão anterior ao chamar Copiar Blob para substituir um blob base com o respetivo instantâneo.

Quando cria um instantâneo, o Armazenamento de Blobs devolve um DateTime valor que identifica exclusivamente o instantâneo em relação ao respetivo blob base. Pode utilizar este valor para realizar mais operações no instantâneo. Tenha em atenção que deve tratar este DateTime valor como opaco.

O DateTime valor identifica o instantâneo no URI. Por exemplo, um blob base e os respetivos instantâneos têm URIs semelhantes aos seguintes:

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

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

Tenha em atenção que sempre que chamar a Snapshot Blob operação, cria um novo instantâneo com um valor exclusivo DateTime . Um blob pode suportar qualquer número de instantâneos. Os instantâneos existentes nunca são substituídos. Pode eliminá-los explicitamente ao chamar Eliminar Blob e definir o x-ms-include-snapshots cabeçalho para o valor adequado.

Uma chamada bem-sucedida para Snapshot Blob devolver um DateTime valor no cabeçalho de x-ms-snapshot resposta. Em seguida, pode utilizar este DateTime valor para realizar operações de leitura, eliminação ou cópia numa versão de instantâneo específica. Pode chamar qualquer operação de Armazenamento de Blobs que seja válida para um instantâneo ao especificar ?snapshot=<DateTime> o nome do blob.

Quando cria um instantâneo de um blob, as seguintes propriedades do sistema são copiadas para o instantâneo com os mesmos valores:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

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

  • x-ms-blob-committed-block-count (apenas 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 consolidada do blob base também é copiada para o instantâneo, se o blob for um blob de blocos. Os blocos não consolidados não são copiados.

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

Pode especificar um ou mais novos valores de metadados para o instantâneo ao especificar o x-ms-meta-name:value cabeçalho no pedido. Se este cabeçalho não for especificado, os metadados associados ao blob base são copiados para o instantâneo.

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

Pode especificar cabeçalhos condicionais no pedido para tirar um instantâneo do blob apenas se uma condição for cumprida. Se a condição especificada não for cumprida, o instantâneo não será criado. O serviço devolve o código de estado 412 (Falha na Pré-condição), juntamente com informações de erro adicionais sobre a condição não cumprida.

Se o blob base tiver uma concessão ativa, pode tirar um instantâneo do blob, desde que qualquer uma das seguintes condições seja verdadeira no pedido:

  • O cabeçalho condicional x-ms-lease-id é especificado e o ID de concessão ativo do blob base está incluído no pedido. Esta condição especifica que o instantâneo só será criado se a concessão estiver ativa e o ID de concessão especificado corresponder ao associado ao blob.

  • O x-ms-lease-id cabeçalho não é especificado de todo, caso em que a concessão de escrita exclusiva é ignorada.

Tenha em atenção que uma concessão associada ao blob base não é copiada para o instantâneo. Não é possível alugar instantâneos.

Quando copia um blob base com a operação Copiar Blob , 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 respetivo nome.

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

Nota

A promoção de um instantâneo não implica custos adicionais para os recursos de armazenamento. Isto deve-se ao facto de os blocos ou páginas serem partilhados entre o instantâneo e o blob base.

Pode definir uma camada de blobs num instantâneo, a partir da versão REST 2019-12-12. Se uma camada estiver definida num blob de raiz, todos os instantâneos herdam a camada do blob base. A criação de um instantâneo num blob arquivado falhará. Definir explicitamente a camada num objeto resulta na faturação do tamanho total do objeto. Tirar um instantâneo de um blob com o conjunto de camadas resulta na faturação completa da cópia do blob de raiz e do instantâneo. Para obter informações detalhadas sobre as camadas de nível de blobs de blocos, veja Camadas de armazenamento frequente, esporádico e de arquivo.

Existem 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 numa conta Armazenamento Premium está limitado a 100. Se esse limite for excedido, a operação devolve o Snapshot Blob código de erro 409 (Contagem de Instantâneos Excedida).

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

  • Não pode ler um instantâneo de um blob de página numa conta Armazenamento Premium com Obter Blob. Nesta situação, o serviço devolve o código de erro 400 (Operação Inválida). No entanto, pode chamar Obter Propriedades do Blob e Obter Metadados de Blobs num instantâneo.

    Para ler um instantâneo, pode utilizar a operação Copiar Blob para copiar um instantâneo para outro blob de página na conta. O blob de destino da operação de cópia não pode ter instantâneos existentes. Se o blob de destino tiver instantâneos, Copy Blob devolve o código de erro 409 (InstantâneosPresent).

Para obter mais informações, veja Using Blob Storage operations with Azure Armazenamento Premium (Utilizar operações de Armazenamento de Blobs com o Azure Armazenamento Premium).

Quando o controlo de versões está ativado, criar um instantâneo de um blob também gera uma nova versão e guarda a versão anterior do blob base. O x-ms-version-id parâmetro devolve um valor opaco DateTime para a nova versão do blob.

Faturação

Os pedidos de preços podem ter origem em clientes que utilizam APIs de Armazenamento de Blobs, diretamente através da API REST do Armazenamento de Blobs ou a partir de uma biblioteca de cliente do Armazenamento do Azure. Estes pedidos acumulam custos por transação. O tipo de transação afeta a forma como a conta é cobrada. Por exemplo, as transações de leitura acumulam-se numa categoria de faturação diferente das transações de escrita. A tabela seguinte mostra a categoria de faturação dos Snapshot Blob pedidos com base no tipo de conta de armazenamento:

Operação Tipo de conta de armazenamento Categoria de faturação
Blob de Instantâneo Blob de bloco premium
Standard para fins gerais v2
Standard para fins gerais v1
Operações de leitura

Para saber mais sobre os preços da categoria de faturação especificada, veja Armazenamento de Blobs do Azure Preços.

Ver também

Criar um instantâneo de um blob

Autorizar pedidos para o Armazenamento do Azure

Códigos de estado e de erro

Códigos de erro do Armazenamento de Blobs