Incremental Copy Blob
L'operazione Incremental Copy Blob
copia uno snapshot del BLOB di pagine di origine in un BLOB di pagine di destinazione. Solo le differenze rispetto allo snapshot copiato in precedenza vengono trasferite alla destinazione. Gli snapshot copiati sono copie complete dello snapshot originale ed è possibile leggerli o copiarli come di consueto. Questa API è supportata a partire dalla versione REST 2016-05-31.
Richiesta
È possibile costruire la Incremental Copy Blob
richiesta come indicato di seguito. È consigliato il protocollo HTTPS. Sostituire myaccount con il nome dell'account di archiviazione, mycontainer con il nome del contenitore e myblob con il nome del BLOB di destinazione. Il comp
parametro di incrementalcopy
query, con valore , indica che questa richiesta consiste nel creare uno snapshot incrementale.
URI della richiesta del metodo PUT | Versione HTTP |
---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=incrementalcopy |
HTTP/1.1 |
URI del servizio di archiviazione emulato
Quando si effettua una richiesta per il servizio di archiviazione emulato, specificare il nome host dell'emulatore e Archiviazione BLOB di Azure porta del servizio come 127.0.0.1:10000, seguito dal nome dell'account di archiviazione emulato. Indicare inoltre che questa richiesta è per la copia incrementale impostando il comp
parametro di query su incrementalcopy
.
URI della richiesta del metodo PUT | Versione HTTP |
---|---|
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=incrementalcopy |
HTTP/1.1 |
Per altre informazioni, vedere Usare l'emulatore Azurite per lo sviluppo locale di Archiviazione di Azure.
Parametri URI
È possibile specificare i parametri aggiuntivi seguenti 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 e facoltativo per le richieste anonime. Specifica la versione dell'operazione da usare per questa richiesta. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure. |
If-Modified-Since |
facoltativo. Valore DateTime . Specificare questa intestazione condizionale per copiare il Blob solo se il Blob di destinazione è stato modificato dopo la data e l'ora specificate. Se il BLOB di destinazione 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 copiare il BLOB solo se il BLOB di destinazione non è stato modificato dopo la data/ora specificata. Se il BLOB di destinazione è 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 copiare il BLOB, solo se il valore specificato ETag corrisponde al ETag valore per un BLOB di destinazione esistente. Se per ETag il BLOB di destinazione non corrisponde all'oggetto ETag specificato per If-Match , Archiviazione BLOB restituisce il codice di stato 412 (Precondizione non riuscita). |
If-None-Match |
facoltativo. Valore ETag o carattere jolly (* ).Specificare un ETag valore per questa intestazione condizionale per copiare il BLOB, solo se il valore specificato ETag non corrisponde al ETag valore per il BLOB di destinazione.Specificare il carattere jolly ( * ) per eseguire l'operazione, solo se il BLOB di destinazione non esiste.Se la condizione specificata non viene soddisfatta, Archiviazione BLOB restituisce il codice di stato 412 (precondizione non riuscita). |
x-ms-copy-source:name |
Obbligatorio. Specifica il nome dello snapshot del BLOB di pagine di origine. Questo valore è un URL di lunghezza massima di 2 kibibyte (KiB) che specifica uno snapshot del BLOB di pagine. La codifica del valore deve essere di tipo URL in quanto viene visualizzato in un URI di richiesta. L'URI del BLOB di origine può essere autorizzato in uno dei due modi seguenti: L'URI del BLOB di origine può fare riferimento a uno snapshot del BLOB di pagine, ma deve includere un token di firma di accesso condiviso creato nel BLOB di base dello snapshot. Il campo della risorsa firmata ( sr ) della firma di accesso condiviso deve essere impostato su b . Ad esempio: https://<account-name>.blob.core.windows.net/<container-name>/<page-blob-name>?snapshot=2022-07-23T00:14:45.3964054Z&sp=r&st=2022-07-23T00:15:38Z&se=2022-07-23T08:15:38Z&spr=https&sv=2021-06-08&sr=b&sig=<signature> .L'URI del BLOB di origine può fare riferimento a uno snapshot del BLOB di pagine pubblico; ad esempio . https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime> |
x-ms-client-request-id |
facoltativo. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 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. |
Testo della richiesta
Nessuno.
Risposta
La risposta include un codice di stato HTTP e un set di intestazioni per la risposta.
Codice stato
Un'operazione completata correttamente restituisce il codice di stato 202 (Accettato). 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 |
---|---|
ETag |
Contiene un valore che è possibile usare per eseguire operazioni in modo condizionale. Il valore è tra virgolette. |
Last-Modified |
Data e ora dell'ultima modifica del BLOB. Per altre informazioni, vedere Rappresentazione dei valori di data/ora nelle intestazioni. Qualsiasi operazione di scrittura nel BLOB (inclusi gli aggiornamenti sui metadati o sulle proprietà del BLOB) modifica l'ora dell'ultima modifica del BLOB. |
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 di Archiviazione BLOB usata per eseguire la richiesta. |
Date |
Valore di data/ora UTC che indica l'ora in cui è stata avviata la risposta. Il servizio genera questo valore. |
x-ms-copy-id: <id> |
Identificatore di stringa per questa operazione di copia. Usare con Get Blob Properties per controllare lo stato di questa operazione di copia o passare a Abort Copy Blob per arrestare una copia in sospeso. |
x-ms-copy-status: pending |
Stato dell'operazione di copia. Questa operazione è sempre in sospeso per indicare che la copia è stata avviata ed è in corso. |
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.
Risposta di esempio
Di seguito è riportata una risposta di esempio per una richiesta di esecuzione di una copia incrementale:
Response Status:
HTTP/1.1 202 Accepted
Response Headers:
Last-Modified: <date>
ETag: "0x8CEB669D794AFE2"
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402
x-ms-version: 2016-05-31
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-copy-status: pending
Date: <date>
Autorizzazione
L'autorizzazione è necessaria quando si chiama un'operazione di accesso ai dati in Archiviazione di Azure. La sezione seguente descrive come l'oggetto di destinazione per l'operazione Incremental Copy Blob
può essere autorizzato. L'accesso al BLOB o al file di origine è autorizzato separatamente, come descritto nei dettagli per l'intestazione della x-ms-copy-source
richiesta.
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 Incremental Copy 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 (per la scrittura in un BLOB esistente) o Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action (per scrivere un nuovo BLOB nella destinazione)
- 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
La destinazione di una copia incrementale non deve esistere o deve essere stata creata con una copia incrementale precedente dallo stesso BLOB di origine. Dopo averlo creato, il BLOB di destinazione è associato in modo permanente all'origine e può essere usato solo per le copie incrementali. Le Get Blob Properties
API e List Blobs
indicano se il BLOB è un BLOB di copia incrementale creato in questo modo.
Non è possibile scaricare direttamente i BLOB di copia incrementale. Le uniche operazioni supportate sono Get Blob Properties
, Incremental Copy Blob
e Delete Blob
. È possibile leggere ed eliminare gli snapshot copiati come di consueto.
Si esegue una copia incrementale in modo asincrono nel servizio ed è necessario eseguire il polling per il completamento. Per informazioni dettagliate su come eseguire il polling di una copia in sospeso, vedere l'API Copy Blob
. Al termine della copia, il BLOB di destinazione conterrà un nuovo snapshot. L'API Get Blob Properties
restituisce l'ora di snapshot dello snapshot appena creato.
La prima volta che si esegue una copia incrementale in un BLOB di destinazione, viene creato un nuovo BLOB, con uno snapshot completamente copiato dall'origine. Ogni chiamata successiva a crea Incremental Copy Blob
un nuovo snapshot copiando solo le modifiche differenziali dallo snapshot copiato in precedenza.
Le modifiche differenziali vengono calcolate nel server eseguendo una Get Page Ranges
chiamata allo snapshot del BLOB di origine. Impostare prevsnapshot
sullo snapshot copiato più di recente. Di conseguenza, le stesse restrizioni relative Get Page Ranges
a si applicano a Incremental Copy Blob
. In particolare, è necessario copiare gli snapshot in ordine crescente e, se il BLOB di origine viene ricreato usando Put Blob
o Copy Blob
, in Incremental Copy Blob
caso di nuovi snapshot avrà esito negativo.
Lo spazio di archiviazione aggiuntivo utilizzato dallo snapshot copiato è la dimensione dei dati differenziali trasferiti durante la copia. È possibile determinare queste dimensioni eseguendo una chiamata API differenziale Get Page Ranges
sullo snapshot, per confrontarla con lo snapshot precedente.
Vedi anche
Autorizzare le richieste ad Archiviazione di Azure
Stato e codici errore
Impostazione dei timeout per le operazioni di archiviazione BLOB