Incremental Copy Blob

L'operazione Incremental Copy Blob copia uno snapshot del BLOB di pagina di origine in un BLOB di pagine di destinazione. Solo le differenze dello snapshot copiato in precedenza vengono trasferite alla destinazione. Gli snapshot copiati sono copie complete dello snapshot originale e è possibile leggere o copiarle come di consueto. Questa API è supportata poiché la 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 query, con il valore di incrementalcopy, 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 sul servizio di archiviazione emulato, specificare il nome host dell'emulatore e Archiviazione BLOB di Azure porta del servizio come 127.0.0.1:10000, seguita dal nome dell'account di archiviazione emulato. Indicare anche 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 specificato per If-Match, l'archiviazione BLOB restituisce il ETag 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, l'archiviazione BLOB restituisce il codice di stato 412 (Precondizione non riuscita).
x-ms-copy-source:name Obbligatorio. Specifica il nome dello snapshot BLOB della pagina di origine.

Questo valore è un URL di fino a 2 kibibyte (KiB) in lunghezza 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 BLOB di origine può essere autorizzato in uno dei due modi seguenti:

L'URI del BLOB di origine può fare riferimento a uno snapshot 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 BLOB di origine può fare riferimento a uno snapshot 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 1 KiB registrato nei log quando la registrazione è configurata. È consigliabile usare questa intestazione per correlare le attività lato client con le 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 aggiuntive e standard. 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 è in 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 dei metadati o delle 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 dell'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 per Abort Copy Blob arrestare una copia in sospeso.
x-ms-copy-status: pending Stato dell'operazione di copia. Questo è sempre in sospeso, per indicare che la copia è stata avviata ed è in corso.
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.

Risposta di esempio

Di seguito è riportata una risposta di esempio per una richiesta per eseguire 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 qualsiasi operazione di accesso ai dati in Archiviazione di Azure. Nella sezione seguente viene descritto come è possibile autorizzare l'oggetto di destinazione per l'operazione Incremental Copy Blob . L'accesso al BLOB di origine o al file è autorizzato separatamente, come descritto nei dettagli per l'intestazione della x-ms-copy-source richiesta.

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 Incremental Copy 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

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 averla creata, il BLOB di destinazione è associato definitivamente 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 BLOB di copia incrementale. L'unica operazione supportata è Get Blob Properties, Incremental Copy Blobe Delete Blob. È possibile leggere ed eliminare gli snapshot copiati come di consueto.

Si esegue una copia incrementale in modo asincrono nel servizio e è 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 per Incremental Copy Blob creare un nuovo snapshot copiando solo le modifiche differenziali dello 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