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 ed è 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à tra virgolette. Si noti che non è possibile scrivere uno snapshot, quindi l'oggetto ETag di uno snapshot specifico non cambia mai. Tuttavia, l'oggetto ETag dello snapshot sarà diverso da quello del BLOB di base se vengono forniti nuovi metadati con la Snaphot Blob richiesta. Se non viene specificato alcun metadato con la richiesta, l'oggetto ETag dello 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 di data e ora nelle intestazioni. Si noti che non è possibile scrivere uno snapshot, quindi l'ora dell'ultima modifica di uno snapshot specifico non viene mai modificata. Tuttavia, l'ora dell'ultima modifica dello snapshot sarà diversa da quella del BLOB di base se vengono forniti nuovi metadati con la Snaphot Blob richiesta. Se non viene specificato alcun metadato con la richiesta, l'ora dell'ultima modifica 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 utilizzata 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ò garantire che il contenuto della richiesta venga crittografato correttamente usando la chiave fornita. |
x-ms-encryption-scope |
Versione 2019-02-02 o successiva. Restituito se la richiesta ha usato un ambito di crittografia. Il client può garantire che il contenuto della richiesta venga crittografato correttamente usando l'ambito di crittografia. |
x-ms-version-id: <DateTime> |
Versione 2019-12-12 e successive. Restituisce un valore opaco che identifica in modo univoco DateTime il BLOB. Il valore di questa intestazione indica la versione del BLOB ed è possibile usarla nelle richieste successive per accedere al BLOB. |
x-ms-client-request-id |
Può essere usato per risolvere i problemi relativi alle richieste e alle 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 un'operazione di accesso ai dati in Archiviazione di Azure. È possibile autorizzare l'operazione Snapshot Blob
come descritto di seguito.
Importante
Microsoft consiglia di usare Microsoft Entra ID con identità gestite per autorizzare le richieste ad Archiviazione di Azure. Microsoft Entra ID offre maggiore sicurezza e facilità d'uso rispetto all'autorizzazione con chiave condivisa.
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 tramite Microsoft Entra ID, vedere Autorizzare l'accesso ai BLOB usando Microsoft Entra ID.
Autorizzazioni
Di seguito è riportata l'azione di controllo degli accessi in base al ruolo necessaria per un Microsoft Entra utente, un gruppo, un gruppo, un'identità gestita o un'entità servizio per chiamare l'operazione Snapshot Blob
e il ruolo controllo degli accessi in base al ruolo di Azure con privilegi minimi che include questa azione:
- Azione controllo degli accessi in base al ruolo di Azure:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write or Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
- Ruolo predefinito con privilegi minimi:Collaboratore ai dati dei BLOB di archiviazione
Per altre informazioni sull'assegnazione dei ruoli tramite il 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 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 il relativo snapshot.
Quando si crea uno snapshot, Archiviazione BLOB restituisce un DateTime
valore che identifica in modo univoco lo snapshot rispetto 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