Snapshot Blob

Tramite l'operazione Snapshot Blob viene creato uno snapshot di sola lettura di un Blob.

Richiesta

È possibile costruire la Snapshot Blob richiesta come indicato di seguito. È consigliato il protocollo HTTPS. Sostituire myaccount con il nome dell'account di archiviazione:

URI della richiesta del metodo PUT Versione HTTP
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=snapshot HTTP/1.1

URI del servizio di archiviazione emulato

Quando si effettua una richiesta al servizio di archiviazione emulato, specificare il nome host dell'emulatore e Archiviazione BLOB di Azure porta come 127.0.0.1:10000, seguito dal nome dell'account emulato:

URI della richiesta del metodo PUT Versione HTTP
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=snapshot HTTP/1.1

Per altre informazioni, vedere Usare l'emulatore Azurite per lo sviluppo locale di Archiviazione di Azure.

Parametri URI

È possibile specificare il parametro aggiuntivo seguente nell'URI della richiesta.

Parametro Descrizione
timeout Facoltativa. Il parametro timeout viene espresso in secondi. Per altre informazioni, vedere Impostazione dei timeout per le operazioni di archiviazione BLOB.

Intestazioni della richiesta

Nella seguente tabella vengono descritte le intestazioni di richiesta obbligatorie e facoltative.

Intestazione della richiesta Descrizione
Authorization Obbligatorio. Specifica lo schema di autorizzazione, il nome dell'account e la firma. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure.
Date o x-ms-date Obbligatorio. Specifica la data per la richiesta nel fuso orario UTC (Coordinated Universal Time). Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure.
x-ms-version Obbligatorio per tutte le richieste autorizzate. Specifica la versione dell'operazione da usare per questa richiesta. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure.
x-ms-meta-name:value facoltativo. Specifica una coppia nome-valore definita dall'utente associata al BLOB. Se non si specificano coppie nome-valore, l'operazione copia i metadati del BLOB di base nello snapshot. Se si specificano una o più coppie nome-valore, lo snapshot viene creato con i metadati specificati e i metadati non vengono copiati dal BLOB di base.

Si noti che a partire dalla versione 2009-09-19, i nomi dei metadati devono rispettare le regole di denominazione per gli identificatori C#. Per altre informazioni , vedere Denominazione e riferimento a contenitori, BLOB e metadati .
If-Modified-Since facoltativo. Valore DateTime. Specificare questa intestazione condizionale per creare uno snapshot del BLOB, solo se è stata modificata dopo la data/ora specificata. Se il BLOB di base non è stato modificato, l'archiviazione BLOB restituisce il codice di stato 412 (precondizione non riuscita).
If-Unmodified-Since facoltativo. Valore DateTime. Specificare questa intestazione condizionale per creare uno snapshot del BLOB, solo se non è stata modificata dopo la data/ora specificata. Se il BLOB di base è stato modificato, Archiviazione BLOB restituisce il codice di stato 412 (Precondizione non riuscita).
If-Match facoltativo. Valore ETag. Specificare un ETag valore per questa intestazione condizionale per creare uno snapshot del BLOB, solo se il relativo ETag valore corrisponde al valore specificato. Se i valori non corrispondono, Archiviazione BLOB restituisce il codice di stato 412 (Precondizione non riuscita).
If-None-Match facoltativo. Valore ETag.

Specificare un ETag valore per questa intestazione condizionale per creare uno snapshot del BLOB, solo se il relativo ETag valore non corrisponde al valore specificato. Se i valori sono identici, Archiviazione BLOB restituisce il codice di stato 412 (Precondizione non riuscita).
x-ms-encryption-scope facoltativo. Indica l'ambito di crittografia da usare per crittografare il contenuto della richiesta. Questa intestazione è supportata nella versione 2019-02-02 e successive.
x-ms-lease-id:<ID> facoltativo. Se si specifica questa intestazione, l'operazione viene eseguita solo se vengono soddisfatte entrambe le condizioni seguenti:

- Il lease del BLOB è attualmente attivo.
- L'ID lease specificato nella richiesta corrisponde a quello del BLOB.

Se questa intestazione viene specificata e una di queste condizioni non viene soddisfatta, la richiesta ha esito negativo. L'operazione Snapshot Blob non riesce con codice di stato 412 (precondizione non riuscita).
x-ms-client-request-id facoltativo. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 kibibyte (KiB) registrato nei log al momento della configurazione della registrazione. È consigliabile usare questa intestazione per correlare le attività lato client alle richieste ricevute dal server. Per altre informazioni, vedere Monitorare Archiviazione BLOB di Azure.

Questa operazione supporta anche l'uso di intestazioni condizionali per eseguire l'operazione, solo se viene soddisfatta una condizione specificata. Per altre informazioni, vedere Specifica delle intestazioni condizionali per le operazioni di archiviazione BLOB.

Intestazioni di richiesta (chiavi di crittografia fornite dal cliente)

A partire dalla versione 2019-02-02, è possibile specificare le intestazioni seguenti nella richiesta per crittografare un BLOB con una chiave fornita dal cliente. La crittografia con una chiave fornita dal cliente (e il set corrispondente di intestazioni) è facoltativa. Se un BLOB è stato crittografato in precedenza con una chiave fornita dal cliente, queste intestazioni devono essere incluse nella richiesta per completare correttamente l'operazione di lettura.

Intestazione della richiesta Descrizione
x-ms-encryption-key Obbligatorio. Chiave di crittografia AES-256 con codifica Base64.
x-ms-encryption-key-sha256 Obbligatorio. Hash SHA256 con codifica Base64 della chiave di crittografia.
x-ms-encryption-algorithm: AES256 Obbligatorio. Specifica l'algoritmo da utilizzare per la crittografia. Il valore di questa intestazione deve essere AES256.

Testo della richiesta

Nessuno.

Risposta

Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta.

Codice stato

Un'operazione completata correttamente restituisce il codice di stato 201 (Creato). Per informazioni sui codici di stato, vedere Codici di stato e di errore.

Intestazioni di risposta

Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; La risposta può includere anche intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.

Sintassi Descrizione
x-ms-snapshot: <DateTime> Restituisce un DateTime valore che identifica in modo univoco lo snapshot. Il valore di questa intestazione indica la versione dello snapshot e è possibile usarla nelle richieste successive per accedere allo snapshot. Si noti che questo valore è opaco.
ETag Oggetto ETag dello snapshot. Se la versione della richiesta è 2011-08-18 o successiva, il ETag valore sarà incluso nelle virgolette. Si noti che uno snapshot non può essere scritto in, quindi l'oggetto ETag di uno snapshot specifico non cambia mai. Tuttavia, l'oggetto ETag dello snapshot differisce da quello del BLOB di base se vengono forniti nuovi metadati con la Snaphot Blob richiesta. Se non vengono specificati metadati con la richiesta, lo ETag snapshot sarà identico a quello del BLOB di base, al momento dell'acquisizione dello snapshot.
Last-Modified Ora dell'ultima modifica dello snapshot. Per altre informazioni, vedere Rappresentazione dei valori data-ora nelle intestazioni.

Si noti che non è possibile scrivere uno snapshot, quindi l'ultima volta modificata di uno snapshot specifico non cambia mai. Tuttavia, l'ultima volta modificata dello snapshot sarà diversa da quella del BLOB di base se vengono forniti nuovi metadati con la Snaphot Blob richiesta. Se non vengono specificati metadati con la richiesta, l'ultima volta modificata dello snapshot sarà identica a quella del BLOB di base, al momento dell'acquisizione dello snapshot.
x-ms-request-id Identifica in modo univoco la richiesta effettuata e può essere usata per la risoluzione dei problemi della richiesta. Per altre informazioni, vedere Risoluzione dei problemi relativi alle operazioni api.
x-ms-version Indica la versione dell'archiviazione BLOB usata per eseguire la richiesta. Questa intestazione viene restituita per le richieste effettuate nella versione 2009-09-19 e successive.
Date Valore di data/ora UTC che indica l'ora in cui è stata avviata la risposta. Il servizio genera questo valore.
x-ms-request-server-encrypted: true/false Versione 2019-02-02 o successiva. Il valore di questa intestazione è impostato su true, se il contenuto della richiesta viene crittografato correttamente usando l'algoritmo specificato. In caso contrario, il valore è impostato su false.
x-ms-encryption-key-sha256 Versione 2019-02-02 o successiva. Restituito se la richiesta ha usato una chiave fornita dal cliente per la crittografia. Il client può assicurarsi che il contenuto della richiesta venga crittografato correttamente usando la chiave specificata.
x-ms-encryption-scope Versione 2019-02-02 o successiva. Restituito se la richiesta ha usato un ambito di crittografia. Il client può assicurarsi che il contenuto della richiesta venga crittografato correttamente usando l'ambito di crittografia.
x-ms-version-id: <DateTime> Versione 2019-12-12 e successiva. Restituisce un valore opaco che identifica in modo univoco DateTime il BLOB. Il valore di questa intestazione indica la versione del BLOB e è possibile usarla nelle richieste successive per accedere al BLOB.
x-ms-client-request-id Può essere usato per risolvere le richieste e le risposte corrispondenti. Il valore di questa intestazione è uguale al valore dell'intestazione x-ms-client-request-id , se presente nella richiesta. Il valore è al massimo 1.024 caratteri ASCII visibili. Se l'intestazione x-ms-client-request-id non è presente nella richiesta, non sarà presente nella risposta.

Corpo della risposta

Nessuno.

Autorizzazione

L'autorizzazione è necessaria quando si chiama qualsiasi operazione di accesso ai dati in Archiviazione di Azure. È possibile autorizzare l'operazione Snapshot Blob come descritto di seguito.

Archiviazione di Azure supporta l'uso di Microsoft Entra ID per autorizzare le richieste ai dati BLOB. Con Microsoft Entra ID è possibile usare il controllo degli accessi in base al ruolo di Azure per concedere le autorizzazioni a un'entità di sicurezza. L'entità di sicurezza può essere un utente, un gruppo, un'entità servizio applicazione o un'identità gestita di Azure. L'entità di sicurezza viene autenticata da Microsoft Entra ID per restituire un token OAuth 2.0. Il token può quindi essere usato per autorizzare una richiesta relativa al servizio BLOB.

Per altre informazioni sull'autorizzazione usando Microsoft Entra ID, vedere Autorizzare l'accesso ai BLOB usando Microsoft Entra ID.

Autorizzazioni

Di seguito è riportata l'azione RBAC necessaria per un utente, un gruppo o un'entità servizio di Microsoft Entra per chiamare l'operazione Snapshot Blob e il ruolo di controllo degli accessi in base al ruolo predefinito di Azure con privilegi minimi che include questa azione:

Per altre informazioni sull'assegnazione dei ruoli tramite controllo degli accessi in base al ruolo di Azure, vedere Assegnare un ruolo di Azure per l'accesso ai dati BLOB.

Commenti

Gli snapshot forniscono versioni di sola lettura dei Blob. Dopo aver creato uno snapshot, è possibile leggere, copiare o eliminarlo, ma non è possibile modificarlo.

Uno snapshot offre un modo pratico per eseguire il backup dei dati del Blob. È possibile usare uno snapshot per ripristinare un BLOB in una versione precedente chiamando Copy BLOB per sovrascrivere un BLOB di base con lo snapshot.

Quando si crea uno snapshot, Archiviazione BLOB restituisce un DateTime valore che identifica in modo univoco lo snapshot relativo al BLOB di base. È possibile usare questo valore per eseguire altre operazioni sullo snapshot. Si noti che è consigliabile considerare questo DateTime valore come opaco.

Il DateTime valore identifica lo snapshot nell'URI. Ad esempio, un Blob di base e i relativi snapshot dispongono di URI simili al seguente:

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

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

Si noti che ogni volta che si chiama l'operazione Snapshot Blob , si crea un nuovo snapshot con un valore univoco DateTime . Un Blob supporta un numero qualsiasi di snapshot. Gli snapshot esistenti non vengono mai sovrascritti. È possibile eliminarli in modo esplicito chiamando Elimina BLOB e impostando l'intestazione x-ms-include-snapshots sul valore appropriato.

Una chiamata riuscita a restituisce Snapshot Blob un DateTime valore nell'intestazione della x-ms-snapshot risposta. È quindi possibile usare questo DateTime valore per eseguire operazioni di lettura, eliminazione o copia in una determinata versione dello snapshot. È possibile chiamare qualsiasi operazione di archiviazione BLOB valida per uno snapshot specificando ?snapshot=<DateTime> dopo il nome del BLOB.

Quando si crea uno snapshot di un Blob, le proprietà di sistema seguenti vengono copiate nello snapshot con gli stessi valori:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • x-ms-blob-sequence-number (solo per i BLOB di pagine)

  • x-ms-blob-committed-block-count (solo per i BLOB di accodamento)

  • x-ms-copy-id (versione 2012-02-12 e successive)

  • x-ms-copy-status (versione 2012-02-12 e successive)

  • x-ms-copy-source (versione 2012-02-12 e successive)

  • x-ms-copy-progress (versione 2012-02-12 e successive)

  • x-ms-copy-completion-time (versione 2012-02-12 e successive)

  • x-ms-copy-status-description (versione 2012-02-12 e successive)

Anche l'elenco di blocchi di cui è stato eseguito il commit del BLOB di base viene copiato nello snapshot, se il BLOB è un BLOB in blocchi. I blocchi di cui non è stato eseguito il commit non vengono copiati.

Il BLOB di snapshot ha sempre le stesse dimensioni del BLOB di base al momento dell'acquisizione dello snapshot. Il valore dell'intestazione Content-Length per il BLOB di snapshot sarà uguale a quello per il BLOB di base.

È possibile specificare uno o più valori di metadati nuovi per lo snapshot specificando l'intestazione x-ms-meta-name:value nella richiesta. Se questa intestazione non viene specificata, i metadati associati al BLOB di base vengono copiati nello snapshot.

Tutti i tag associati al BLOB di base vengono copiati nello snapshot. Non è possibile impostare nuovi valori di tag per lo snapshot.

È possibile specificare intestazioni condizionali nella richiesta per creare uno snapshot del BLOB solo se viene soddisfatta una condizione. Se la condizione specificata non viene soddisfatta, lo snapshot non viene creato. Il servizio restituisce il codice di stato 412 (precondizione non riuscita), insieme ad altre informazioni sull'errore sulla condizione non soddisfatta.

Se il BLOB di base ha un lease attivo, è possibile creare uno snapshot del BLOB purché una delle condizioni seguenti sia vera della richiesta:

  • L'intestazione x-ms-lease-id condizionale è specificata e l'ID lease attivo per il Blob di base è incluso nella richiesta. Questa condizione specifica che lo snapshot deve essere creato solo se il lease è attivo e l'ID lease specificato corrisponde a quello associato al BLOB.

  • L'intestazione x-ms-lease-id non viene specificata affatto, nel qual caso il lease di scrittura esclusivo viene ignorato.

Si noti che un lease associato al BLOB di base non viene copiato nello snapshot. Non è possibile eseguire il lease degli snapshot.

Quando si copia un BLOB di base usando l'operazione Copia BLOB , gli snapshot del BLOB di base non vengono copiati nel BLOB di destinazione. Quando un BLOB di destinazione viene sovrascritto con una copia, gli snapshot associati al BLOB di destinazione rimangono invariati con il relativo nome.

È possibile copiare un Blob snapshot sul relativo Blob di base per ripristinare una versione precedente di un Blob. Lo snapshot viene mantenuto, ma il relativo Blob di base viene sovrascritto con una copia che può essere letta e scritta.

Nota

La promozione di uno snapshot non comporta costi aggiuntivi per le risorse di archiviazione. Ciò è dovuto al fatto che i blocchi o le pagine vengono condivisi tra lo snapshot e il BLOB di base.

È possibile impostare un livello BLOB su uno snapshot, a partire dalla versione REST 2019-12-12. Se un livello è impostato su un BLOB radice, tutti gli snapshot ereditano il livello dal BLOB di base. La creazione di uno snapshot in un BLOB archiviato avrà esito negativo. L'impostazione esplicita del livello su un oggetto comporta la fatturazione per le dimensioni complete dell'oggetto. L'acquisizione di uno snapshot di un BLOB con il set di livelli comporta la fatturazione completa della copia del BLOB radice e dello snapshot. Per informazioni dettagliate sulla suddivisione in livelli a livello di BLOB in blocchi, vedere Livelli di archiviazione ad accesso frequente, sporadico e archivio.

Esistono alcune differenze tra gli account azure Archiviazione Premium e gli account di archiviazione standard, in termini di snapshot:

  • Il numero di snapshot per ogni BLOB di pagine in un account di archiviazione Premium è limitato a 100. Se tale limite viene superato, l'operazione restituisce il Snapshot Blob codice di errore 409 (numero di snapshot superato).

  • È possibile creare uno snapshot di un BLOB di pagine in un account Archiviazione Premium ogni dieci minuti. Se tale frequenza viene superata, l'operazione restituisce il Snapshot Blob codice di errore 409 (Frequenza operazione snapshot superata).

  • Non è possibile leggere uno snapshot di un BLOB di pagine in un account Archiviazione Premium usando Recupera BLOB. In questo caso, il servizio restituisce il codice di errore 400 (operazione non valida). È tuttavia possibile chiamare Get Blob Properties (Recupera proprietà BLOB ) e Get Blob Metadata (Recupera metadati BLOB ) su uno snapshot.

    Per leggere uno snapshot, è possibile usare l'operazione Copia BLOB per copiare uno snapshot in un altro BLOB di pagine nell'account. Il BLOB di destinazione per l'operazione di copia non deve contenere snapshot. Se il BLOB di destinazione include snapshot, Copy Blob restituisce il codice errore 409 (SnapshotsPresent).

Per altre informazioni, vedere Uso delle operazioni di archiviazione BLOB con Azure Archiviazione Premium.

Quando il controllo delle versioni è abilitato, la creazione di uno snapshot di un BLOB genera anche una nuova versione e salva la versione precedente del BLOB di base. Il x-ms-version-id parametro restituisce un valore opaco DateTime per la nuova versione del BLOB.

Fatturazione

Le richieste di determinazione dei prezzi possono provenire dai client che usano le API di archiviazione BLOB, direttamente tramite l'API REST di Archiviazione BLOB o da una libreria client di Archiviazione di Azure. Queste richieste accumulano addebiti per transazione. Il tipo di transazione influisce sul modo in cui viene addebitato l'account. Ad esempio, le transazioni di lettura si accumulano in una categoria di fatturazione diversa rispetto alle transazioni di scrittura. La tabella seguente illustra la categoria di fatturazione per Snapshot Blob le richieste in base al tipo di account di archiviazione:

Operazione Tipo di account di archiviazione Categoria di fatturazione
Snapshot Blob BLOB in blocchi Premium
Utilizzo generico v2 Standard
Standard per utilizzo generico v1
Operazioni di lettura

Per informazioni sui prezzi per la categoria di fatturazione specificata, vedere prezzi Archiviazione BLOB di Azure.

Vedi anche

Creazione di uno snapshot di un BLOB

Autorizzare le richieste ad Archiviazione di Azure

Stato e codici errore

Codici di errore di Archiviazione BLOB