Esporta (0) Stampa
Espandi tutto

Snapshot Blob

Pubblicato: agosto 2011

Aggiornamento: gennaio 2014

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

La richiesta Snapshot Blob può essere costruita nel modo seguente. Si consiglia di utilizzare 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

Quando si effettua una richiesta nel servizio di archiviazione emulato, specificare il nome host dell'emulatore e la porta del servizio Blob come 127.0.0.1:10000, seguiti dal nome dell'account di archiviazione 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 Uso dell'emulatore di archiviazione di Azure per lo sviluppo e il test.

Nell'URI della richiesta è possibile specificare i parametri aggiuntivi seguenti.

 

Parametro Descrizione

timeout

Facoltativo. Il parametro timeout viene espresso in secondi. Per altre informazioni, vedere Impostazione di timeout per le operazioni del servizio Blob.

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

 

Intestazione della richiesta Descrizione

Authorization

Obbligatorio. Specifica lo schema di autenticazione, il nome dell'account e la firma. Per altre informazioni, vedere Autenticazione per i servizi di archiviazione di Azure.

Date o x-ms-date

Obbligatorio. Specifica l'ora UTC (Coordinated Universal Time) per la richiesta. Per altre informazioni, vedere Autenticazione per i servizi di archiviazione di Azure.

x-ms-version

Obbligatoria per tutte le richieste autenticate. Specifica la versione dell'operazione da utilizzare 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 definito dall'utente associata al Blob. Se non vengono specificate coppie nome-valore, i metadati del Blob di base verranno copiati nello snapshot. Se vengono specificate 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 essere conformi alle regole di denominazione per gli identificatori C#. Per altre informazioni, vedere Assegnazione di nome 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 è stato modificato dopo la data e l'ora specificate. Se il Blob di base non è stato modificato, il servizio Blob restituisce il codice di stato 412 (Condizione preliminare non riuscita).

If-Unmodified-Since

Facoltativo. Valore DateTime. Specificare questa intestazione condizionale per creare uno snapshot del Blob solo se non è stato modificato dopo la data e l'ora specificate. Se il Blob di base è stato modificato, il servizio Blob restituisce il codice di stato 412 (Condizione preliminare non riuscita).

If-Match

Facoltativo. Valore ETag. Specificare un valore ETag per questa intestazione condizionale per creare uno snapshot del Blob solo se il relativo valore ETag corrisponde al valore specificato. Se i valori non corrispondono, il servizio Blob restituisce il codice di stato 412 (Condizione preliminare non riuscita).

If-None-Match

Facoltativo. Valore ETag.

Specificare un valore ETag per questa intestazione condizionale per creare uno snapshot del Blob solo se il relativo valore ETag non corrisponde al valore specificato. Se i valori sono identici, tramite il servizio Blob viene restituito il codice di stato 412 (Condizione preliminare non riuscita).

x-ms-lease-id:<ID>

Facoltativo. Se questa intestazione viene specificata, 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 tutte e due le condizioni non vengono soddisfatte, la richiesta ha esito negativo e l'operazione Snapshot Blob restituisce il codice di stato 412 (Condizione preliminare non riuscita).

x-ms-client-request-id

Facoltativo. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 KB che viene registrato nei log di analisi quando la registrazione di Analisi archiviazione è abilitata. L'utilizzo di questa intestazione è consigliato per la correlazione tra le attività sul lato client e le richieste ricevute dal server. Per altre informazioni vedere Informazioni sulla registrazione di Analisi archiviazione e l'articolo relativo all'utilizzo di log per tenere traccia delle richiesta di archiviazione nella registrazione di Azure.

Questa operazione supporta l'utilizzo delle intestazioni condizionali per eseguire l'operazione solo se viene soddisfatta una determinata condizione. Per altre informazioni, vedere Specifica di intestazioni condizionali per le operazioni del servizio Blob.

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

Un'operazione completata correttamente restituisce il codice di stato 201 (Creato).

Per informazioni sui codici di stato, vedere Codici ed errori di stato.

Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; inoltre, possono essere incluse intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.

 

Sintassi Descrizione

x-ms-snapshot: <DateTime>

Questa intestazione restituisce un valore DateTime che identifica in modo univoco lo snapshot. Il valore di questa intestazione indica la versione dello snapshot e può essere utilizzato nelle richieste successive per accedere allo snapshot. Si noti che questo valore è opaco.

ETag

Valore ETag dello snapshot. Se la versione della richiesta è 2011-08-18 o successive, il valore ETag sarà racchiuso tra virgolette. Si noti che non è possibile scrivere su uno snapshot, pertanto il valore ETag di un determinato snapshot non cambia mai. Tuttavia, il valore ETag dello snapshot è diverso da quello del Blob di base se i nuovi metadati sono stati specificati con la richiesta Snaphot Blob. Se nella richiesta non sono stati specificati metadati, il valore ETag dello snapshot sarà identico a quello del Blob di base nel momento in cui è stato creato lo snapshot.

Last-Modified

Ora dell'ultima modifica dello snapshot. Il formato data è conforme a RFC 1123. Per altre informazioni, vedere Rappresentazione di valori di data e ora nelle intestazioni.

Si noti che non è possibile scrivere su uno snapshot, pertanto l'ora dell'ultima modifica di un determinato snapshot non cambia mai. Tuttavia, l'ora dell'ultima modifica dello snapshot è diverso da quello del Blob di base se i nuovi metadati sono stati specificati con la richiesta Snaphot Blob. Se nella richiesta non sono stati specificati metadati, l'ora dell'ultima modifica dello snapshot sarà identico a quello del Blob di base nel momento in cui è stato creato lo snapshot.

x-ms-request-id

Questa intestazione identifica in modo univoco la richiesta effettuata e può essere utilizzata per risolvere i problemi relativi alla richiesta. Per altre informazioni, vedere Risoluzione dei problemi relativi alle operazioni dell'API.

x-ms-version

Indica la versione del servizio Blob utilizzata per eseguire la richiesta. Questa intestazione viene restituita per le richieste effettuate nella versione 2009-09-19 e successive.

Date

Valore data/ora UTC generato dal servizio che indica l'ora in cui è stata avviata la risposta.

Solo il proprietario dell'account può chiamare questa operazione.

Gli snapshot forniscono versioni di sola lettura dei Blob. Una volta creato uno snapshot, è possibile leggerlo, copiarlo o eliminarlo, ma non modificarlo.

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

Quando si crea uno snapshot, il servizio Blob restituisce un valore DateTime che identifica in modo univoco lo snapshot relativamente al Blob di base. È possibile utilizzare questo valore per eseguire altre operazioni sullo snapshot. Si noti che è necessario considerare questo valore DateTime come opaco.

Il valore DateTime 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 verrà creato un nuovo snapshot, con un valore DateTime univoco. Un Blob supporta un numero qualsiasi di snapshot. Gli snapshot esistenti non vengono mai sovrascritti, ma devono essere eliminati in modo esplicito chiamando Delete Blob e impostando l'intestazione x-ms-include-snapshots sul valore appropriato.

Lettura, copia ed eliminazione degli snapshot

Una chiamata eseguita correttamente a Snapshot Blob restituisce un valore DateTime nell'intestazione della risposta x-ms-snapshot. È quindi possibile utilizzare questo valore DateTime per eseguire operazioni di lettura, eliminazione o copia su una versione specifica di uno snapshot. Eventuali operazioni del servizio Blob valide per uno snapshot possono essere chiamate specificando ?snapshot=<DateTime> dopo il nome del Blob.

Copia dei metadati e delle proprietà 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 (for page blobs only)

  • 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)

Nel caso dei Blob in blocchi, anche l'elenco di blocchi di cui è stato eseguito il commit del Blob di base viene copiato nello snapshot. Eventuali blocchi di cui non è stato eseguito il commit non vengono copiati.

Il Blob dello snapshot presenta sempre le stesse dimensioni del Blob di base nel momento in cui è stato eseguito lo snapshot, pertanto il valore dell'intestazione Content-Length per il Blob snapshot sarà uguale a quello del 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.

Definizione di intestazioni condizionali

È possibile specificare le intestazioni condizionali nella richiesta per creare uno snapshot del Blob solo se una condizione viene soddisfatta. Se la condizione specificata non viene soddisfatta, lo snapshot non viene creato e il servizio Blob restituisce il codice di stato 412 (Condizione preliminare non riuscita), insieme ad altre informazioni sulla condizione non soddisfatta.

Creazione di uno snapshot di un Blob con lease

Se il Blob di base dispone di un lease attivo, è possibile creare uno snapshot del Blob purché venga soddisfatta una delle condizioni della richiesta seguenti:

  • 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 venga creato solo se il lease è attivo e l'ID specificato corrisponda a quello associato al Blob.

  • L'intestazione x-ms-lease-id non è specificata, nel qual caso il lease con accesso in scrittura esclusivo viene ignorato.

Si noti che un lease associato al Blob di base non viene copiato nello snapshot. Non è possibile associare un lease agli snapshot.

Copia di snapshot

Quando un Blob di base viene copiato tramite l'operazione Copy 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.

noteNota
Questo tipo di promozione di uno snapshot non comporta un costo aggiuntivo per le risorse di archiviazione, poiché i blocchi o le pagine vengono condivisi dallo snapshot e dal Blob di base.

Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft