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 de 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 de 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 de 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 de blob 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 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 a 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 uma 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 esse cabeçalho condicional para obter um instantâneo do blob, somente se o 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 esse cabeçalho condicional para obter 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 valor estará entre aspas ETag . Observe que uma instantâneo não pode ser gravada, portanto, o ETag de um determinado instantâneo nunca muda. No entanto, o ETag do instantâneo será diferente do blob de 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 de base, no momento em que o instantâneo foi obtido. |
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 de base se novos metadados forem fornecidos com a solicitação Snaphot Blob . Se nenhum metadado for especificado com a solicitação, a hora da última modificação do instantâneo será idêntica à do blob de base, no momento em que o instantâneo foi feito. |
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 true como , 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 será 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.
Importante
A Microsoft recomenda usar Microsoft Entra ID com identidades gerenciadas para autorizar solicitações para o Armazenamento do Azure. Microsoft Entra ID fornece segurança superior e facilidade de uso em comparação com a autorização de Chave Compartilhada.
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, um grupo, uma entidade de serviço de aplicativo ou uma 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 um usuário Microsoft Entra, grupo, identidade gerenciada ou entidade de serviço para chamar a Snapshot Blob
operação e a função rbac interna do Azure com privilégios mínimos que inclui esta ação:
- Ação rbac do Azure:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write ou Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
- Função interna com privilégios mínimos:Colaborador de Dados de Blob de Armazenamento
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 uma instantâneo, você pode lê-la, copiá-la ou excluí-la, mas não pode modificá-la.
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 de 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 de 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 de base:
http://myaccount.blob.core.windows.net/mycontainer/myblob
Instantâneo:
http://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
Observe que cada vez que você chama a Snapshot Blob
operação, cria um novo 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 Delete 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 bloqueados confirmada do blob de 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 de base no momento em que o instantâneo é obtido. O valor do Content-Length
cabeçalho do blob de instantâneo será o mesmo do blob de 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 uma instantâneo do blob somente se uma condição for atendida. Se a condição especificada não for atendida, o instantâneo não será criado. O serviço retorna status código 412 (Falha na pré-condição), juntamente com informações de erro adicionais sobre a condição não atendida.
Se o blob de base tiver uma concessão ativa, você poderá usar uma instantâneo do blob, desde que uma das seguintes condições seja verdadeira para a 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, caso em que a concessão de gravação exclusiva é ignorada.
Observe que uma concessão associada ao blob de base não é copiada para o instantâneo. Instantâneos não podem ser concedidos.
Quando você copia um blob de base usando a operação Copiar Blob , todos os instantâneos do blob de 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 de base. Uma instantâneo em um blob arquivado falhará. Definir explicitamente a camada em um objeto resulta na cobrança do tamanho total do objeto. Fazer uma instantâneo de um blob que tem o conjunto de camadas resulta na cobrança de cópia completa do blob raiz e no 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 as contas de Armazenamento Premium do Azure e as contas de armazenamento padrão em termos de instantâneos:
O número de instantâneos por blob de páginas 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 de 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 de 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 da categoria de cobrança especificada, confira Preços Armazenamento de Blobs do Azure.
Confira também
Como criar um instantâneo de um blob