Get Block List
Tramite l'operazione Get Block List
viene recuperato l'elenco di blocchi caricati come parte di un Blob in blocchi.
Esistono due elenchi di blocchi gestiti per un BLOB:
Elenco blocchi di cui è stato eseguito il commit: elenco di blocchi di cui è stato eseguito il commit in un BLOB specificato tramite Put Block List.
Elenco blocchi di cui non è stato eseguito il commit: elenco di blocchi caricati per un BLOB tramite Put Block, ma che non sono ancora stati sottoposti a commit. Questi blocchi vengono archiviati in Azure in associazione a un BLOB, ma non fanno ancora parte del BLOB.
È possibile chiamare Get Block List
per restituire l'elenco di blocchi di cui è stato eseguito il commit, l'elenco di blocchi di cui non è stato eseguito il commit o entrambi gli elenchi. È anche possibile chiamare questa operazione per recuperare l'elenco di blocchi di cui è stato eseguito il commit per uno snapshot.
Richiesta
La richiesta Get Block List
può essere costruita come segue. È consigliabile usare HTTPS. Sostituire myaccount con il nome dell'account di archiviazione:
URI della richiesta del metodo GET | Versione HTTP |
---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&snapshot=<DateTime> https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&versionid=<DateTime> |
HTTP/1.1 |
Richiesta di servizio di archiviazione emulata
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 GET | Versione HTTP |
---|---|
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=blocklist |
HTTP/1.1 |
Per altre informazioni, vedere Usare l'emulatore Azurite per lo sviluppo locale di Archiviazione di Azure.
Parametri URI
Nell'URI della richiesta puoi specificare i parametri seguenti:
Parametro URI | Descrizione |
---|---|
snapshot |
Facoltativa. Il parametro snapshot è un valore DateTime opaco che, se presente, specifica l'elenco di Blob da recuperare. Per altre informazioni sull'uso degli snapshot BLOB, vedere Create uno snapshot di un BLOB. |
versionid |
Facoltativo per le versioni 2019-12-12 e successive. Il versionid parametro è un valore opaco DateTime che, quando presente, specifica la versione del BLOB da recuperare. |
blocklisttype |
Specifica se restituire l'elenco dei blocchi di cui è stato eseguito il commit, l'elenco dei blocchi di cui non è stato eseguito il commit o entrambi. I valori validi sono committed , uncommitted o all . Se si omette questo parametro, Get Block List restituisce l'elenco dei blocchi di cui è stato eseguito il commit. |
timeout |
facoltativo. Il parametro timeout viene espresso in secondi. Per altre informazioni, vedere Impostare i 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, 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. |
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 una delle due condizioni non viene soddisfatta, la richiesta ha esito negativo e l'operazione ha esito negativo 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 l'utilizzo delle intestazioni condizionali per eseguire l'operazione solo se viene soddisfatta una determinata condizione. Per altre informazioni, vedere Specificare intestazioni condizionali per le operazioni di archiviazione BLOB.
Testo della richiesta
Nessuno.
Richiesta di esempio
L'URI della richiesta di esempio seguente restituisce l'elenco di blocchi di cui è stato eseguito il commit per un BLOB denominato MOV1.avi:
GET http://myaccount.blob.core.windows.net/movies/MOV1.avi?comp=blocklist&blocklisttype=committed HTTP/1.1
L'URI della richiesta di esempio seguente restituisce sia il commit che l'elenco di blocchi di cui non è stato eseguito il commit:
GET http://myaccount.blob.core.windows.net/movies/MOV1.avi?comp=blocklist&blocklisttype=all HTTP/1.1
L'URI della richiesta di esempio seguente restituisce l'elenco di blocchi di cui è stato eseguito il commit per uno snapshot. Uno snapshot è costituito solo da blocchi di cui è stato eseguito il commit, pertanto non sono associati blocchi di cui non è stato eseguito il commit.
GET http://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&snapshot=2009-09-30T20%3a11%3a15.2735974Z
Risposta
La risposta include un codice di stato HTTP, un set di intestazioni di risposta e un corpo della risposta che contiene l'elenco di blocchi.
Codice stato
Un'operazione completata correttamente restituisce 200 (OK).
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 potrebbe includere anche intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.
Intestazione risposta | Descrizione |
---|---|
Last-Modified |
Data/ora dell'ultima modifica del BLOB. Il formato data è conforme a RFC 1123. Per altre informazioni, vedere Rappresentare i valori di data/ora nelle intestazioni. Restituito solo se il BLOB ha eseguito il commit dei blocchi. Qualsiasi operazione che comporta la modifica del Blob, inclusi aggiornamenti dei metadati o delle proprietà del Blob, comporta la modifica anche dell'ora dell'ultima modifica del Blob. |
ETag |
Valore ETag per il Blob. Restituito solo se il BLOB ha eseguito il commit dei blocchi. |
Content-Type |
Tipo di contenuto MIME del Blob. Il valore predefinito è application/xml . |
x-ms-blob-content-length |
La dimensione del BLOB in byte. |
x-ms-request-id |
Questa intestazione identifica in modo univoco la richiesta effettuata e può essere usata per risolvere i problemi della richiesta. Per altre informazioni, vedere Risolvere i problemi relativi alle operazioni api. |
x-ms-version |
Indica la versione del servizio utilizzata per eseguire la richiesta. Questa intestazione viene restituita per le richieste effettuate nella versione 2009-09-19 e successive. Questa intestazione viene restituita anche per le richieste anonime senza una versione specificata se il contenitore è stato contrassegnato per l'accesso pubblico tramite l'archiviazione BLOB versione 2009-09-19. Nota: solo l'elenco di blocchi di cui è stato eseguito il commit può essere restituito tramite una richiesta anonima. |
Date |
Valore di data/ora UTC generato dal servizio, che indica l'ora di avvio della risposta. |
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 non contiene più di 1.024 caratteri ASCII visibili. Se l'intestazione x-ms-client-request-id non è presente nella richiesta, non è presente nella risposta. |
Questa operazione supporta anche l'uso di intestazioni condizionali per ottenere l'elenco di blocchi solo se viene soddisfatta una condizione specificata. Per altre informazioni, vedere Specificare intestazioni condizionali per le operazioni di archiviazione BLOB.
Corpo della risposta
Il formato del corpo della risposta per una richiesta che restituisce solo i blocchi di cui è stato eseguito il commit è il seguente:
<?xml version="1.0" encoding="utf-8"?>
<BlockList>
<CommittedBlocks>
<Block>
<Name>base64-encoded-block-id</Name>
<Size>size-in-bytes</Size>
</Block>
<CommittedBlocks>
</BlockList>
Il formato del corpo della risposta per una richiesta che restituisce sia i blocchi di cui è stato eseguito il commit sia quelli di cui non è stato eseguito è il seguente:
<?xml version="1.0" encoding="utf-8"?>
<BlockList>
<CommittedBlocks>
<Block>
<Name>base64-encoded-block-id</Name>
<Size>size-in-bytes</Size>
</Block>
</CommittedBlocks>
<UncommittedBlocks>
<Block>
<Name>base64-encoded-block-id</Name>
<Size>size-in-bytes</Size>
</Block>
</UncommittedBlocks>
</BlockList>
Risposta di esempio
Nel seguente esempio il parametro blocklisttype
è stato impostato su committed
, pertanto solo i blocchi di cui è stato eseguito il commit del Blob vengono restituiti nella risposta.
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Sun, 25 Sep 2011 00:33:19 GMT
<?xml version="1.0" encoding="utf-8"?>
<BlockList>
<CommittedBlocks>
<Block>
<Name>BlockId001</Name>
<Size>4194304</Size>
</Block>
<Block>
<Name>BlockId002</Name>
<Size>4194304</Size>
</Block>
</CommittedBlocks>
</BlockList>
In questo esempio il parametro blocklisttype
è stato impostato su all
, pertanto sia i blocchi del BLOB di cui è stato eseguito il commit sia quelli di cui non è stato eseguito vengono restituiti nella risposta.
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Sun, 25 Sep 2011 00:35:56 GMT
<?xml version="1.0" encoding="utf-8"?>
<BlockList>
<CommittedBlocks>
<Block>
<Name>BlockId001</Name>
<Size>4194304</Size>
</Block>
<Block>
<Name>BlockId002</Name>
<Size>4194304</Size>
</Block>
</CommittedBlocks>
<UncommittedBlocks>
<Block>
<Name>BlockId003</Name>
<Size>4194304</Size>
</Block>
<Block>
<Name>BlockId004</Name>
<Size>1024000</Size>
</Block>
</UncommittedBlocks>
</BlockList>
In questo esempio successivo il blocklisttype
parametro è stato impostato su all
, ma il BLOB non è ancora stato eseguito il commit, quindi l'elemento CommittedBlocks
è vuoto.
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Wed, 14 Sep 2011 00:40:22 GMT
<?xml version="1.0" encoding="utf-8"?>
<BlockList>
<CommittedBlocks />
<UncommittedBlocks>
<Block>
<Name>BlockId001</Name>
<Size>1024</Size>
</Block>
<Block>
<Name>BlockId002</Name>
<Size>1024</Size>
</Block>
<Block>
<Name>BlockId003</Name>
<Size>1024</Size>
</Block>
<Block>
<Name>BlockId004</Name>
<Size>1024</Size>
</Block>
</UncommittedBlocks>
</BlockList>
Autorizzazione
L'autorizzazione è necessaria quando si chiama un'operazione di accesso ai dati in Archiviazione di Azure. È possibile autorizzare l'operazione Get Block List
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 Get Block List
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/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.
Commenti
Chiamare Get Block List
per restituire l'elenco di blocchi di cui è stato eseguito il commit in un BLOB in blocchi, l'elenco di blocchi che non sono ancora stati sottoposti a commit o entrambi gli elenchi. Utilizzare il parametro blocklisttype
per specificare l'elenco di blocchi da restituire. L'elenco dei blocchi di cui è stato eseguito il commit viene restituito nello stesso ordine di cui è stato eseguito il commit dall'operazione Put Block List .
È possibile usare l'elenco di blocchi di cui non è stato eseguito il commit per determinare quali blocchi mancano dal BLOB nei casi in cui le chiamate a Put Block
o Put Block List
non sono riuscite. L'elenco dei blocchi di cui non è stato eseguito il commit viene restituito in ordine alfabetico. Se un ID blocco è stato caricato più di una volta, nell'elenco compare solo il blocco caricato più recentemente.
Nota
Quando non è stato ancora eseguito il commit di un BLOB, la chiamata Get Block List
con restituisce blocklisttype=all
i blocchi di cui non è stato eseguito il commit e l'elemento CommittedBlocks
è vuoto.
Get Block List
non supporta la concorrenza quando legge l'elenco di blocchi di cui non è stato eseguito il commit. Chiamate a dove blocklisttype=uncommitted
o blocklisttype=all
hanno una frequenza massima di richieste inferiore rispetto ad Get Block List
altre operazioni di lettura. Per informazioni dettagliate sulla velocità effettiva di destinazione per le operazioni di lettura, vedere Obiettivi di scalabilità e prestazioni di Archiviazione di Azure.
A partire dalla versione 2019-12-12, un BLOB in blocchi può contenere blocchi fino a 4000 mebibyte (MiB). Per proteggere le applicazioni che usano un intero con segno a 32 bit per rappresentare le dimensioni del blocco, la chiamata Get Block List
a un BLOB in blocchi che contiene un blocco maggiore di 100 MiB con una versione REST precedente a 2019-12-12 comporta il codice di stato 409 (Conflitto).
Get Block List
si applica solo ai Blob in blocchi. La chiamata a Get Block List
in un Blob di pagine restituisce il codice di stato 400 (Richiesta non valida).
Get Block List
in un BLOB in blocchi archiviato avrà esito negativo.
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 Get Block List
le richieste in base al tipo di account di archiviazione:
Operazione | Tipo di account di archiviazione | Categoria di fatturazione |
---|---|---|
Get Block List | BLOB in blocchi Premium Utilizzo generico v2 Standard |
Altre operazioni |
Get Block List | 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
Autorizzare le richieste allo stato di archiviazione di Azuree ai codici di errore dell'archiviazione BLOB Codici di erroreSet timeout per le operazioni di archiviazione BLOB