Condividi tramite


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:

Impostare i risultati massimi

Recuperare i risultati dell'elenco parziale con indicatori

Risultati elenco filtri

Attraversa lo spazio dei nomi BLOB

Formato di risposta XML

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