Elenco delle risorse di archiviazione BLOB
L'API del servizio BLOB include operazioni per elencare i contenitori all'interno di un account (operazione Elenchi contenitori ) e i BLOB all'interno di un contenitore (operazione Blob elenco ). Queste operazioni hanno funzionalità comuni degne di nota.
Un'operazione di elenco restituisce una risposta XML che contiene tutto o parte dell'elenco richiesto. L'operazione restituisce le entità in ordine alfabetico.
In questo argomento sono contenute gli argomenti secondari seguenti:
Recuperare i risultati dell'elenco parziale con indicatori
Attraversa lo spazio dei nomi BLOB
Impostare i risultati massimi
Per specificare il numero massimo di risultati da restituire in una singola chiamata a un'operazione di elenco, specificare un valore per il parametro nell'URI maxresults
della richiesta.
Se il numero massimo di risultati non viene specificato nella richiesta o se è maggiore di 5.000, il server restituisce fino al massimo di 5.000 elementi. Se si specifica un numero massimo di risultati minore o uguale a zero, il servizio restituisce il codice di stato 400 (richiesta non valida).
Recuperare i risultati dell'elenco parziale con indicatori
La prima volta che l'operazione di presentazione viene eseguita su una determinata risorsa, la risposta potrebbe contenere tutti i risultati oppure potrebbe contenere un subset dei risultati e un valore di marcatore. Il valore del marcatore può essere passato alla chiamata successiva per restituire il set successivo di risultati (e quindi il successivo) finché l'elenco non viene completato e non viene restituito alcun marcatore.
Il valore di marcatore è incluso nell'elemento NextMarker
della risposta XML. Se l'elemento NextMarker
è vuoto, l'elenco è completo. Il valore di è un valore stringa NextMarker
opaco al client.
Per restituire il set successivo di risultati in un'operazione successiva, passare il valore restituito nel parametro NextMarker
come parametro marker
nell'URI della richiesta.
Risultati elenco filtri
L'elenco dei risultati può essere filtrato specificando una stringa prefisso nella richiesta utilizzando il parametro prefix
. Operazione elenco che restituisce le entità i cui nomi iniziano con quel prefisso. Se il parametro prefix
viene specificato nell'URI della richiesta, la risposta XML include un elemento Prefix
che contiene il carattere o i caratteri del prefisso. Ad esempio, specificando un prefisso con un valore "c" restituisce <Prefix>``c``</Prefix>
all'interno del codice XML della risposta. Per un esempio, vedere la sezione Elenca contenitori più avanti in questo argomento.
Attraversa lo spazio dei nomi BLOB
L'operazione List BLOBs ha un parametro aggiuntivo delimiter
che consente al chiamante di attraversare lo spazio dei nomi BLOB usando un delimitatore configurato dall'utente. Il delimitatore può essere un singolo carattere o una stringa. Se la richiesta include questo parametro, l'operazione restituisce un elemento BlobPrefix
. L'elemento BlobPrefix
viene restituito al posto di tutti i Blob i cui nomi iniziano con la stessa sottostringa fino al carattere delimitatore. Il valore dell'elemento BlobPrefix
è sottostringa+delimitatore, dove la sottostringa è la sottostringa comune che inizia uno o più nomi BLOB e delimitatore è il valore del parametro delimitatore.
È possibile usare il valore di BlobPrefix
per eseguire una chiamata successiva per elencare i BLOB che iniziano con questo prefisso. Specificare il valore di BlobPrefix
per le richieste successive. In questo modo, è possibile attraversare una gerarchia virtuale di BLOB come se si trattasse di un file system. Per un esempio, vedere Elencare i BLOB con un delimitatore più avanti in questo argomento.
Si noti che ogni BlobPrefix
valore restituito viene restituito per il risultato massimo.
Tenere presente anche che non è possibile elencare gli snapshot BLOB se si include un delimitatore con la richiesta. Se si specifica un valore per il delimiter
parametro e si imposta anche il include=snapshots
parametro, il servizio BLOB restituisce un errore InvalidQueryParameter (codice di stato HTTP 400 - Richiesta non valida).
Formato di risposta XML
L'output elenco è un documento XML il cui formato è simile a quelli mostrati negli esempi di codice più avanti in questo argomento.
Il corpo della risposta include i valori di tutti i parametri specificati nell'URI della richiesta come elementi all'interno del corpo della risposta.
Il DateTime
valore restituito nell'elemento Last-Modified
è in formato RFC 1123. Per altre informazioni sui DateTime
valori, vedere Rappresentazione dei valori di data/ora nelle intestazioni.
Elencare i contenitori
Questo esempio mostra il risultato di un'operazione di presentazione che restituisce due contenitori. L'URI della richiesta è il seguente:
GET https://myaccount.blob.core.windows.net/?comp=list&prefix=c&maxresults=3&include=metadata
Il prefisso "c" è stato specificato per filtrare l'elenco. Il numero massimo di risultati da restituire è stato impostato su 3. Il NextMarker
tag mostra il nome del contenitore che verrà restituito in un'operazione di presentazione successiva.
<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults AccountName="https://myaccount.blob.core.windows.net/">
<Prefix>c</Prefix>
<MaxResults>3</MaxResults>
<Containers>
<Container>
<Name>container1</Name>
<Url>https://myaccount.blob.core.windows.net/container1</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 18:09:03 GMT</Last-Modified>
<Etag>0x8CAE7D0C4AF4487</Etag>
</Properties>
<Metadata>
<Color>orange</Color>
<ContainerNumber>01</ContainerNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
</Metadata>
</Container>
<Container>
<Name>container2</Name>
<Url>https://myaccount.blob.core.windows.net/container2</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 17:26:40 GMT</Last-Modified>
<Etag>0x8CAE7CAD8C24928</Etag>
</Properties>
<Metadata>
<Color>pink</Color>
<ContainerNumber>02</ContainerNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
</Metadata>
</Container>
<Container>
<Name>container3</Name>
<Url>https://myaccount.blob.core.windows.net/container3</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 17:26:40 GMT</Last-Modified>
<Etag>0x8CAE7CAD8EAC0BB</Etag>
</Properties>
<Metadata>
<Color>brown</Color>
<ContainerNumber>03</ContainerNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
</Metadata>
</Container>
</Containers>
<NextMarker>container4</NextMarker>
</EnumerationResults>
Elencare BLOB e snapshot
In questo esempio viene illustrato il risultato di un'operazione di presentazione che restituisce BLOB e snapshot in un contenitore denominato mycontainer. L'URI della richiesta è il seguente:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&include=snapshots&include=metadata
La risposta include sia i Blob sia gli snapshot:
<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults ContainerName="https://myaccount.blob.core.windows.net/mycontainer">
<Blobs>
<Blob>
<Name>blob1.txt</Name>
<Url>https://myaccount.blob.core.windows.net/mycontainer/blob1.txt</Url>
<Properties>
<Last-Modified>Wed, 09 Sep 2009 09:20:02 GMT</Last-Modified>
<Etag>0x8CBFF45D8A29A19</Etag>
<Content-Length>100</Content-Length>
<Content-Type>text/html</Content-Type>
<Content-Encoding />
<Content-Language>en-US</Content-Language>
<Content-MD5 />
<Cache-Control>no-cache</Cache-Control>
<BlobType>BlockBlob</BlobType>
<LeaseStatus>unlocked</LeaseStatus>
</Properties>
<Metadata>
<Color>blue</Color>
<BlobNumber>01</BlobNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
</Metadata>
</Blob>
<Blob>
<Name>blob2.txt</Name>
<Snapshot>2009-09-09T09:20:03.0427659Z</Snapshot>
<Url>https://myaccount.blob.core.windows.net/mycontainer/blob2.txt?snapshot=2009-09-09T09%3a20%3a03.0427659Z</Url>
<Properties>
<Last-Modified>Wed, 09 Sep 2009 09:20:02 GMT</Last-Modified>
<Etag>0x8CBFF45D8B4C212</Etag>
<Content-Length>5000</Content-Length>
<Content-Type>application/octet-stream</Content-Type>
<Content-Encoding>gzip</Content-Encoding>
<Content-Language />
<Content-MD5 />
<Cache-Control />
<BlobType>BlockBlob</BlobType>
</Properties>
<Metadata>
<Color>green</Color>
<BlobNumber>02</BlobNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
<x-ms-invalid-name>nasdf$@#$$</x-ms-invalid-name>
</Metadata>
</Blob>
<Blob>
<Name>blob2.txt</Name>
<Snapshot>2009-09-09T09:20:03.1587543Z</Snapshot>
<Url>https://myaccount.blob.core.windows.net/mycontainer/blob2.txt?snapshot=2009-09-09T09%3a20%3a03.1587543Z</Url>
<Properties>
<Last-Modified>Wed, 09 Sep 2009 09:20:02 GMT</Last-Modified>
<Etag>0x8CBFF45D8B4C212</Etag>
<Content-Length>5000</Content-Length>
<Content-Type>application/octet-stream</Content-Type>
<Content-Encoding>gzip</Content-Encoding>
<Content-Language />
<Content-MD5 />
<Cache-Control />
<BlobType>BlockBlob</BlobType>
</Properties>
<Metadata>
<Color>green</Color>
<BlobNumber>02</BlobNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
</Metadata>
</Blob>
<Blob>
<Name>blob2.txt</Name>
<Url>https://myaccount.blob.core.windows.net/mycontainer/blob2.txt</Url>
<Properties>
<Last-Modified>Wed, 09 Sep 2009 09:20:02 GMT</Last-Modified>
<Etag>0x8CBFF45D8B4C212</Etag>
<Content-Length>5000</Content-Length>
<Content-Type>application/octet-stream</Content-Type>
<Content-Encoding>gzip</Content-Encoding>
<Content-Language />
<Content-MD5 />
<Cache-Control />
<BlobType>BlockBlob</BlobType>
<LeaseStatus>unlocked</LeaseStatus>
</Properties>
<Metadata>
<Color>green</Color>
<BlobNumber>02</BlobNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
</Metadata>
</Blob>
<Blob>
<Name>blob3.txt</Name>
<Url>https://myaccount.blob.core.windows.net/mycontainer/blob3.txt</Url>
<Properties>
<Last-Modified>Wed, 09 Sep 2009 09:20:03 GMT</Last-Modified>
<Etag>0x8CBFF45D911FADF</Etag>
<Content-Length>16384</Content-Length>
<Content-Type>image/jpeg</Content-Type>
<Content-Encoding />
<Content-Language />
<Content-MD5 />
<Cache-Control />
<x-ms-blob-sequence-number>3</x-ms-blob-sequence-number>
<BlobType>PageBlob</BlobType>
<LeaseStatus>locked</LeaseStatus>
</Properties>
<Metadata>
<Color>yellow</Color>
<BlobNumber>03</BlobNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
</Metadata>
</Blob>
</Blobs>
<NextMarker />
</EnumerationResults>
Elencare i BLOB con un delimitatore
Questo esempio mostra il risultato di un'operazione di presentazione che restituisce BLOB sotto un contenitore denominato mycontainer. L'URI della richiesta è il seguente:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&delimiter=/&maxresults=4
In questo caso, il delimiter
parametro viene specificato come /
. Il corpo della risposta include il BlobPrefix
tag, che rappresenta il gruppo di BLOB che iniziano con la stessa sottostringa, incluso il delimitatore.
I Blob di esempio nel contenitore sono i seguenti. I primi quattro vengono restituiti nella prima operazione di presentazione, perché MaxResults
è impostato su 4. Si noti che myfolder/blobA.txte myfolder/blobB.txt sono raggruppati nel corpo della risposta nel BlobPrefix
tag e conteggiano come singolo BLOB in termini del numero di entità restituite. Per restituire i BLOB che iniziano con questo prefisso, effettuare una richiesta successiva in cui il parametro del prefisso è impostato su myfolder/.
blob1.txt
blob2.txt
myfolder/blobA.txt
myfolder/blobB.txt
newblob1.txt
newblob2.txt
Il BLOB successivo da restituire è newblob2.txt. Il nome del BLOB viene fornito nel NextMarker
tag.
<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults ContainerName="https://myaccount.blob.core.windows.net/mycontainer">
<MaxResults>4</MaxResults>
<Blobs>
<Blob>
<Name>blob1.txt</Name>
<Url>https://myaccount.blob.core.windows.net/mycontainer/blob1.txt</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 18:41:57 GMT</Last-Modified>
<Etag>0x8CAE7D55D050B8B</Etag>
<Content-Length>8</Content-Length>
<Content-Type>text/html</Content-Type>
<Content-Encoding />
<Content-Language>en-US</Content-Language>
<Content-MD5 />
<Cache-Control>no-cache</Cache-Control>
<BlobType>BlockBlob</BlobType>
<LeaseStatus>unlocked</LeaseStatus>
<Properties>
</Blob>
<Blob>
<Name>blob2.txt</Name>
<Url>https://myaccount.blob.core.windows.net/mycontainer/blob2.txt</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 12:18:50 GMT</Last-Modified>
<Etag>0x8CAE7D55CF6C339</Etag>
<Content-Length>100</Content-Length>
<Content-Type>text/html</Content-Type>
<Content-Encoding />
<Content-Language>en-US</Content-Language>
<Content-MD5 />
<Cache-Control>no-cache</Cache-Control>
<BlobType>BlockBlob</BlobType>
<LeaseStatus>unlocked</LeaseStatus>
</Properties>
</Blob>
<BlobPrefix>
<Name>myfolder/</Name>
</BlobPrefix>
<Blob>
<Name>newblob1.txt</Name>
<Url>https://myaccount.blob.core.windows.net/mycontainer/newblob1.txt</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 16:31:57 GMT</Last-Modified>
<Etag>0x8CAE7D55CF6C339</Etag>
<Content-Length>25</Content-Length>
<Content-Type>text/html</Content-Type>
<Content-Encoding />
<Content-Language>en-US</Content-Language>
<Content-MD5 />
<Cache-Control>no-cache</Cache-Control>
<BlobType>BlockBlob</BlobType>
<LeaseStatus>unlocked</LeaseStatus>
</Properties>
</Blob>
</Blobs>
<NextMarker>newblob2.txt</NextMarker>
</EnumerationResults>
Elencare i BLOB nel contenitore radice
Per elencare i BLOB nel contenitore radice, è possibile usare l'URL seguente:
https://myaccount.blob.core.windows.net/$root?restype=container&comp=list&maxresults=10
Tenere presente che quando si elencano i BLOB nel contenitore radice, il corpo della risposta XML non include un riferimento esplicito al contenitore radice nel campo del URL
BLOB. Ecco una risposta di esempio che elenca i BLOB nel contenitore radice:
<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults ContainerName="https://myaccount.blob.core.windows.net/%24root">
<MaxResults>10</MaxResults>
<Blobs>
<Blob>
<Name>rootblob1.txt</Name>
<Url>https://myaccount.blob.core.windows.net/rootblob1.txt</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 18:41:48 GMT</Last-Modified>
<Etag>0x8CAE7D55D050B8B</Etag>
<Content-Length>25</Content-Length>
<Content-Type>text/html</Content-Type>
<Content-Encoding />
<Content-Language>en-US</Content-Language>
<Content-MD5 />
<Cache-Control>no-cache</Cache-Control>
<BlobType>BlockBlob</BlobType>
<LeaseStatus>unlocked</LeaseStatus>
</Properties>
</Blob>
<Blob>
<Name>rootblob2.txt</Name>
<Url>https://myaccount.blob.core.windows.net/rootblob2.txt</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 18:45:57 GMT</Last-Modified>
<Etag>0x8CAE7D55CF6C339</Etag>
<Content-Length>14</Content-Length>
<Content-Type>text/plain; charset=UTF-8</Content-Type>
<Content-Encoding />
<Content-Language>en-US</Content-Language>
<Content-MD5 />
<Cache-Control>no-cache</Cache-Control>
<BlobType>BlockBlob</BlobType>
<LeaseStatus>unlocked</LeaseStatus>
</Properties>
</Blob>
</Blobs>
</EnumerationResults>
Vedi anche
Elencare i contenitori
Elencare i BLOB
Concetti relativi al servizio BLOB
Controllo delle versioni per i servizi di archiviazione di Azure