Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'operazione Copy Blob From URL
copia un BLOB in una destinazione all'interno dell'account di archiviazione in modo sincrono per le dimensioni del BLOB di origine fino a 256 mebibyte (MiB). Questa API è disponibile a partire dalla versione 2018-03-28.
L'origine di un'operazione Copy Blob From URL
può essere qualsiasi BLOB in blocchi di cui è stato eseguito il commit in qualsiasi account di archiviazione di Azure pubblico o autorizzato con una firma di accesso condiviso.
Richiesta
È possibile costruire la richiesta di Copy Blob From URL
come indicato di seguito. È consigliabile usare 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.
URI della richiesta del metodo PUT | Versione HTTP |
---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob |
HTTP/1.1 |
URI per il servizio di archiviazione emulato
Quando si effettua una richiesta per il servizio di archiviazione emulato, specificare il nome host dell'emulatore e la porta di archiviazione BLOB di Azure 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 |
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 |
Opzionale. Il parametro timeout è espresso in secondi. Per altre informazioni, vedere Impostare i timeout per le operazioni di archiviazione BLOB. |
Header di richiesta
Nella tabella seguente vengono descritte le intestazioni di richiesta obbligatorie e facoltative:
Header di 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 l'ora UTC (Coordinated Universal Time) per la richiesta. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure. |
x-ms-version |
Obbligatorio per tutte le richieste autorizzate. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure. |
x-ms-meta-name:value |
Opzionale. Specifica una coppia nome/valore definita dall'utente associata al BLOB. Se non viene specificata alcuna coppia nome/valore, l'operazione copierà i metadati dal BLOB o dal file di origine al BLOB di destinazione. Se vengono specificate una o più coppie nome/valore, il BLOB di destinazione viene creato con i metadati specificati e i metadati non vengono copiati dal BLOB o dal file di origine. 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 Denominazione e riferimento a contenitori, BLOB e metadati. |
x-ms-encryption-scope |
Opzionale. Indica l'ambito di crittografia per la crittografia del contenuto della richiesta. Questa intestazione è supportata nella versione 2020-12-06 e successive. |
x-ms-tags |
Opzionale. Imposta i tag con codifica della stringa di query nel BLOB. I tag non vengono copiati dall'origine della copia. Per altre informazioni, vedere Note. Supportato nella versione 2019-12-12 e successive. |
x-ms-copy-source-tag-option |
Opzionale. I valori possibili sono REPLACE e (con distinzione tra maiuscole COPY e minuscole). Il valore predefinito è REPLACE .Se COPY specificato, i tag del BLOB di origine verranno copiati nel BLOB di destinazione. Il BLOB di origine deve essere privato e la richiesta deve disporre dell'autorizzazione per l'operazione Get Blob Tags nel BLOB di origine e per l'operazione Set Blob Tags nel BLOB di destinazione. In questo modo si verifica una chiamata aggiuntiva all'operazione Get Blob Tags nell'account di origine.REPLACE Imposterà i tag specificati dall'intestazione x-ms-tags nel BLOB di destinazione. Se x-ms-tags specifica REPLACE e nessun tag, non verrà impostato alcun tag nel BLOB di destinazione. Se si specifica COPY e x-ms-tags si verificherà un errore 409 (Conflitto).Supportato nella versione 2021-04-10 e successive. |
x-ms-source-if-modified-since |
Opzionale. Valore DateTime . Specificare questa intestazione condizionale per copiare il BLOB solo se il BLOB di origine è stato modificato dopo la data/ora specificata. Se il BLOB di origine non è stato modificato, l'archiviazione BLOB restituisce il codice di stato 412 (precondizione non riuscita). Non è possibile specificare questa intestazione se l'origine è un file di Azure. |
x-ms-source-if-unmodified-since |
Opzionale. Valore DateTime . Specificare questa intestazione condizionale per copiare il BLOB solo se il BLOB di origine non è stato modificato dopo la data/ora specificata. Se il BLOB di origine è stato modificato, l'archiviazione BLOB restituisce il codice di stato 412 (precondizione non riuscita). Non è possibile specificare questa intestazione se l'origine è un file di Azure. |
x-ms-source-if-match |
Opzionale. Valore ETag . Specificare questa intestazione condizionale per copiare il BLOB di origine solo se il relativo ETag valore corrisponde al valore specificato. Se i valori non corrispondono, l'archiviazione BLOB restituisce il codice di stato 412 (precondizione non riuscita). Non è possibile specificare questa intestazione se l'origine è un file di Azure. |
x-ms-source-if-none-match |
Opzionale. Valore ETag . Specificare questa intestazione condizionale per copiare il BLOB solo se il relativo ETag valore non corrisponde al valore specificato. Se i valori sono identici, l'archiviazione BLOB restituisce il codice di stato 412 (precondizione non riuscita). Non è possibile specificare questa intestazione se l'origine è un file di Azure. |
If-Modified-Since |
Opzionale. Valore DateTime . Specificare questa intestazione condizionale per copiare il BLOB solo se il BLOB di destinazione è stato modificato dopo la data/ora specificata. Se il BLOB di destinazione non è stato modificato, l'archiviazione BLOB restituisce il codice di stato 412 (precondizione non riuscita). |
If-Unmodified-Since |
Opzionale. 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, l'archiviazione BLOB restituisce il codice di stato 412 (Precondizione non riuscita). |
If-Match |
Opzionale. 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 i valori non corrispondono, l'archiviazione BLOB restituisce il codice di stato 412 (precondizione non riuscita). |
If-None-Match |
Opzionale. Un ETag valore o il 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 l'URL del BLOB di origine. Il valore può essere un URL di lunghezza massima di 2 kibibyte (KiB) che specifica un BLOB. Il valore deve essere codificato con URL come apparirebbe in un URI della richiesta. Il BLOB di origine deve essere pubblico o essere autorizzato tramite una firma di accesso condiviso. Se il BLOB di origine è pubblico, non è necessaria alcuna autorizzazione per eseguire l'operazione. Se le dimensioni del BLOB di origine sono maggiori di 256 MiB, la richiesta ha esito negativo con un errore 409 (conflitto). Il tipo di BLOB del BLOB di origine deve essere BLOB in blocchi. Ecco alcuni esempi di URL di oggetti di origine: - https://myaccount.blob.core.windows.net/mycontainer/myblob - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime> - https://myaccount.blob.core.windows.net/mycontainer/myblob?versionid=<DateTime> |
x-ms-copy-source-authorization: <scheme> <signature> |
Opzionale. Specifica lo schema di autorizzazione e la firma per l'origine della copia. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure. Solo l'indicatore di connessione dello schema è supportato per Microsoft Entra. Questa intestazione è supportata nella versione 2020-10-02 e successive. |
x-ms-requires-sync:true |
Obbligatorio. Indica che si tratta di un'operazione sincrona Copy Blob From URL anziché asincrona Copy Blob . |
x-ms-source-content-md5 |
Opzionale. Specifica un hash MD5 del contenuto del BLOB dall'URI. Questo hash viene usato per verificare l'integrità del BLOB durante il trasporto dei dati dall'URI. Quando si specifica questa intestazione, il servizio di archiviazione confronta l'hash del contenuto che è arrivato dall'origine di copia con questo valore di intestazione. L'hash MD5 non viene archiviato con il BLOB. Se i due hash non corrispondono, l'operazione non riesce con codice di errore 400 (richiesta non valida). |
x-ms-lease-id:<ID> |
Obbligatorio se il BLOB di destinazione ha un lease attivo. L'ID lease specificato per questa intestazione deve corrispondere all'ID lease del BLOB di destinazione. Se la richiesta non include l'ID lease o non è valida, l'operazione ha esito negativo con il codice di stato 412 (precondizione non riuscita). Se questa intestazione è specificata e il BLOB di destinazione non ha attualmente un lease attivo, l'operazione ha esito negativo con il codice di stato 412 (Precondizione non riuscita). Nella versione 2012-02-12 e successive, questo valore deve specificare un lease attivo e infinito per un BLOB in lease. Un ID lease a durata finita ha esito negativo con codice di stato 412 (Precondizione non riuscita). |
x-ms-client-request-id |
Opzionale. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 KiB registrato nei log durante la configurazione della registrazione. È consigliabile usare questa intestazione per correlare le attività sul lato client alle richieste ricevute dal server. |
x-ms-access-tier |
Opzionale. Specifica il livello da impostare nel BLOB di destinazione. Questa intestazione è per i BLOB di pagine in un account Premium solo con la versione 2017-04-17 e successive. Per un elenco completo dei livelli supportati, vedere Archiviazione Premium ad alte prestazioni e dischi gestiti per le macchine virtuali. Questa intestazione è supportata nella versione 2018-11-09 e successive per i BLOB in blocchi. La suddivisione in livelli dei BLOB in blocchi è supportata negli account di archiviazione BLOB o per utilizzo generico v2. I valori validi sono Hot , Cool , Cold e Archive .
Nota:Cold livello è supportato per la versione 2021-12-02 e successive. Per informazioni dettagliate sulla suddivisione in livelli dei BLOB in blocchi, vedere Livelli di archiviazione ad accesso frequente, sporadico e archivio. |
x-ms-file-request-intent |
Obbligatorio se x-ms-copy-source l'intestazione è un URL di file di Azure e x-ms-copy-source-authorization l'intestazione specifica un token OAuth. Il valore accettabile è backup . Questa intestazione specifica che il Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action o Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action deve essere concesso se sono inclusi nei criteri di controllo degli accessi in base al ruolo assegnati all'identità autorizzata usando l'intestazione x-ms-copy-source-authorization . Disponibile per la versione 2025-07-05 e successive. |
Testo della richiesta
Nessuno.
Risposta
La risposta include un codice di stato HTTP e un set di intestazioni di risposta.
Codice di stato
Un'operazione riuscita restituisce il codice di stato 202 (accettato).
Per informazioni sui codici di stato, vedere Stato e codici di errore.
Intestazioni di risposta
La risposta per questa operazione include le intestazioni seguenti. La risposta potrebbe includere anche intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1 .
Intestazione della risposta | Descrizione |
---|---|
ETag |
Se la copia è completa, contiene il ETag valore del BLOB di destinazione. Se la copia non è completa, contiene il ETag valore del BLOB vuoto creato all'inizio della copia.Il ETag valore è tra virgolette. |
Last-Modified |
Restituisce la data/ora in cui l'operazione di copia nel BLOB di destinazione è stata completata. |
x-ms-request-id |
Identifica in modo univoco la richiesta effettuata. È possibile usarlo per risolvere i problemi della richiesta. Per altre informazioni, vedere Risolvere i 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 il servizio ha inviato la risposta. |
x-ms-copy-id: <id> |
Identificatore stringa per questa operazione di copia. |
x-ms-copy-status: <success> |
Indica lo stato dell'operazione di copia. Il valore di success indica che l'operazione è stata completata correttamente. |
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 e il valore è al massimo 1.024 caratteri ASCII visibili. Se l'intestazione x-ms-client-request-id non è presente nella richiesta, questa intestazione non sarà presente nella risposta. |
x-ms-request-server-encrypted: true/false |
Impostare se true il contenuto della richiesta viene crittografato correttamente tramite l'algoritmo specificato. In caso contrario, il valore è false . |
x-ms-encryption-scope |
Restituito se la richiesta ha utilizzato un ambito di crittografia, in modo che il client possa garantire che il contenuto della richiesta venga crittografato correttamente tramite l'ambito di crittografia. |
Corpo della risposta
Nessuno.
Risposta di esempio
Di seguito è riportato un esempio di risposta per una richiesta di copia di un BLOB:
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: 2018-03-28
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-copy-status: success
Date: <date>
Autorizzazione
L'autorizzazione è necessaria quando si chiama un'operazione di accesso ai dati in Archiviazione di Azure. Nella tabella seguente viene descritto il modo in cui è possibile autorizzare gli oggetti di destinazione e di origine per un'operazione di Copy Blob From URL
:
Tipo di oggetto | Autorizzazione ID Microsoft Entra | Autorizzazione della firma di accesso condiviso | Autorizzazione della chiave condivisa (o Shared Key Lite) |
---|---|---|---|
BLOB in blocchi di destinazione | Sì | Sì | Sì |
BLOB in blocchi di origine nello stesso account di archiviazione | Sì | Sì | Sì |
BLOB in blocchi di origine in un altro account di archiviazione | NO | Sì | NO |
Se una richiesta specifica i tag nell'intestazione della x-ms-tags
richiesta, il chiamante deve soddisfare i requisiti di autorizzazione dell'operazione Set Blob Tags .
È possibile autorizzare l'operazione di Copy Blob From URL
come descritto di seguito. Si noti che un BLOB di origine in un account di archiviazione diverso deve essere autorizzato separatamente tramite token di firma di accesso condiviso con l'autorizzazione di lettura (r). Per altre informazioni sull'autorizzazione del BLOB di origine, vedere i dettagli per l'intestazione x-ms-copy-source
della richiesta.
Importante
Microsoft consiglia di usare l'ID Microsoft Entra 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.
- Microsoft Entra ID (scelta consigliata)
-
firme di accesso condiviso - 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 al fine di restituire un token OAuth 2.0. Il token può quindi essere usato per autorizzare una richiesta sul servizio BLOB.
Per altre informazioni sull'autorizzazione con Microsoft Entra ID, vedere Autorizzare l'accesso ai BLOB usando Microsoft Entra ID.
Autorizzazioni
Di seguito è riportata l'azione controllo degli accessi in base al ruolo necessaria per un utente, un gruppo, un'identità gestita o un'entità servizio di Microsoft Entra per chiamare l'operazione di Copy Blob From URL
e il ruolo controllo degli accessi in base al ruolo di Azure con privilegi minimi che include questa azione:
Blob di destinazione
- 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 la scrittura di un nuovo BLOB nella destinazione)
- Ruolo predefinito con privilegi minimi:Collaboratore ai dati dei BLOB di archiviazione
BLOB di origine all'interno dello stesso account di archiviazione
- Azione Controllo degli accessi in base al ruolo di Azure:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
- Ruolo predefinito con privilegi minimi:Lettore dati 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.
Osservazioni:
Il BLOB di origine e di destinazione per un'operazione Copy Blob From URL
deve essere un BLOB in blocchi.
Nella versione 2020-10-02 e successive, l'autorizzazione di Microsoft Entra è supportata per l'origine dell'operazione di copia.
L'operazione Copy Blob From URL
copia sempre l'intero BLOB di origine. La copia di un intervallo di byte o di un set di blocchi non è supportata.
È possibile copiare un BLOB di origine in un BLOB di destinazione con un nome diverso. Il BLOB di destinazione può essere un BLOB in blocchi esistente oppure un nuovo BLOB creato dall'operazione di copia.
Quando si copia da un BLOB in blocchi, vengono copiati tutti i blocchi di cui è stato eseguito il commit e i relativi ID blocco. I blocchi di cui non è stato eseguito il commit non vengono copiati. Al termine dell'operazione di copia, il BLOB di destinazione avrà lo stesso numero di blocchi di cui è stato eseguito il commit dell'origine.
Il ETag
valore di un BLOB in blocchi cambia all'inizio e al Copy Blob From URL
termine dell'operazione.
Copia delle proprietà e dei metadati dei BLOB
Quando viene copiato un BLOB in blocchi, le proprietà di sistema seguenti vengono copiate nel BLOB di destinazione con gli stessi valori:
Content-Type
Content-Encoding
Content-Language
Content-Length
Cache-Control
Content-MD5
Content-Disposition
Anche l'elenco di blocchi di cui è stato eseguito il commit del BLOB di origine viene copiato nel BLOB di destinazione. I blocchi di cui non è stato eseguito il commit non vengono copiati.
Il BLOB di destinazione ha sempre le stesse dimensioni del BLOB di origine, quindi il valore dell'intestazione Content-Length
per il BLOB di destinazione corrisponde al valore di tale intestazione per il BLOB di origine.
Se l'intestazione x-ms-tags
fornisce tag per il BLOB di destinazione, devono essere codificati in una stringa di query. Le chiavi e i valori dei tag devono essere conformi ai requisiti di denominazione e lunghezza specificati nell'operazione Set Blob Tags .
L'intestazione x-ms-tags
può contenere fino a 2 kilobit di tag. Se sono necessari altri tag, utilizzare l'operazione Set Blob Tags
.
Se l'intestazione x-ms-tags
non fornisce tag, i tag non vengono copiati dal BLOB di origine.
Copia di un BLOB in lease
L'operazione Copy Blob From URL
legge solo dal BLOB di origine, quindi lo stato di lease del BLOB di origine non è importante.
Fatturazione
Le richieste di prezzi possono provenire dai client che usano le API di archiviazione BLOB, direttamente tramite l'API REST dell'archiviazione BLOB o da una libreria client di Archiviazione di Azure. Queste richieste accumulano addebiti per transazione. Il tipo di transazione influisce sulla modalità di addebito dell'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 Copy Blob From URL
richieste in base al tipo di account di archiviazione:
Operazione | Tipo di account di archiviazione | Categoria di fatturazione |
---|---|---|
Copia BLOB dall'URL (accountdi destinazione 1) | BLOB in blocchi Premium Standard per utilizzo generico v2 Standard per utilizzo generico v1 |
Operazioni di scrittura |
Copia BLOB dall'URL (accountdi origine 2) | BLOB in blocchi Premium Standard per utilizzo generico v2 Standard per utilizzo generico v1 |
Operazioni di lettura |
1L'account di destinazione viene addebitato per una transazione per avviare la scrittura.
2L'account di origine comporta una transazione per ogni richiesta di lettura all'oggetto di origine.
Per informazioni sui prezzi per le categorie di fatturazione specificate, vedere prezzi di Archiviazione BLOB di Azure.
Inoltre, se gli account di origine e di destinazione risiedono in aree diverse (ad esempio, Stati Uniti settentrionali e Stati Uniti meridionali), la larghezza di banda usata per trasferire la richiesta viene addebitata all'account di archiviazione di origine come uscita . L'uscita tra account all'interno della stessa area è gratuita.
Quando si copia un BLOB di origine in un BLOB di destinazione con un nome diverso all'interno dello stesso account, si usano risorse di archiviazione aggiuntive per il nuovo BLOB. L'operazione di copia comporta quindi un addebito sull'utilizzo della capacità dell'account di archiviazione per tali risorse aggiuntive.
Vedere anche
Autorizzare le richieste ad Archiviazione di Azure
Stato e codici errore
codici di errore dell'archiviazione BLOB
Informazioni sul modo in cui gli snapshot accumulano gli addebiti