Dela via


Lista bloblagringsresurser

BLOB-tjänst-API:et innehåller åtgärder för att visa containrar i ett konto (åtgärden Listcontainrar ) och blobarna i en container ( åtgärden Listblobar ). Dessa åtgärder har några vanliga funktioner som är värda att notera.

En listningsåtgärd returnerar ett XML-svar som innehåller hela eller delar av den begärda listan. Åtgärden returnerar entiteter i alfabetisk ordning.

Det här avsnittet innehåller följande underavsnitt:

Ange maximalt resultat

Hämta partiella listresultat med markörer

Filtrera listresultat

Bläddra i blobnamnområdet

XML-svarsformat

Ange maximalt resultat

Om du vill ange det maximala antalet resultat som ska returneras i ett enda anrop till en listningsåtgärd anger du ett värde för parametern maxresults på begärande-URI:n.

Om det maximala antalet resultat inte anges i begäran eller om det är större än 5 000 returnerar servern upp till högst 5 000 objekt. Om du anger ett maximalt antal resultat på mindre än eller lika med noll returnerar tjänsten statuskoden 400 (felaktig begäran).

Hämta partiella listresultat med markörer

Första gången liståtgärden utförs mot en viss resurs kan svaret innehålla alla resultat eller innehålla en delmängd av resultaten och ett markörvärde. Markörvärdet kan skickas till det efterföljande anropet för att returnera nästa uppsättning resultat (och sedan nästa) tills listan är klar och ingen markör returneras.

Markörvärdet ingår i elementet NextMarker i XML-svaret. När elementet NextMarker är tomt är listan klar. Värdet NextMarker för är ett strängvärde som är ogenomskinlig för klienten.

Om du vill returnera nästa uppsättning resultat i en efterföljande åtgärd skickar du värdet som returneras i taggen NextMarker som parameter på marker begärande-URI:n.

Filtrera listresultat

Listan med resultat kan filtreras genom att ange en prefixsträng för begäran med hjälp av parametern prefix . Liståtgärden returnerar sedan de entiteter som har namn som börjar med prefixet. Om parametern prefix anges i begärande-URI:n innehåller svars-XML ett Prefix element som innehåller prefixtecknet eller tecknen. Om du till exempel anger ett prefix med värdet "c" returneras <Prefix>``c``</Prefix> i svars-XML:en. Ett exempel finns i avsnittet Lista containrar senare i det här avsnittet.

Bläddra i blobnamnområdet

Åtgärden Listblobar har ytterligare delimiter en parameter som gör det möjligt för anroparen att bläddra i blobnamnområdet med hjälp av en användarkonfigurerad avgränsare. Avgränsaren kan vara ett enskilt tecken eller en sträng. När begäran innehåller den här parametern returnerar åtgärden ett BlobPrefix element. Elementet BlobPrefix returneras i stället för alla blobar med namn som börjar med samma delsträng upp till avgränsartecknets utseende. Värdet för elementet BlobPrefix är substring+delimiter, där delsträng är den vanliga understrängen som börjar ett eller flera blobnamn, och avgränsare är värdet för avgränsarparametern .

Du kan använda värdet BlobPrefix för för att göra ett efterföljande anrop för att lista de blobar som börjar med det här prefixet. Ange värdet BlobPrefix för för efterföljande begäranden. På så sätt kan du bläddra i en virtuell hierarki med blobar som om det vore ett filsystem. Ett exempel finns i Lista blobar med en avgränsare senare i det här avsnittet.

Observera att varje BlobPrefix som returneras räknas mot det maximala resultatet.

Tänk också på att du inte kan lista blobögonblicksbilder om du inkluderar en avgränsare med begäran. Om du anger ett värde för parametern delimiter och även anger parametern include=snapshots returnerar Blob-tjänsten ett InvalidQueryParameter-fel (HTTP-statuskod 400 – Felaktig begäran).

XML-svarsformat

Listutdata är ett XML-dokument vars format liknar dem som visas i kodexemplen senare i det här avsnittet.

Svarstexten innehåller värdena för alla parametrar som angavs i begärande-URI:n som element i svarstexten.

Värdet DateTime som returneras i elementet Last-Modified är i RFC 1123-format. Mer information om DateTime värden finns i Representation av datum/tid-värden i rubriker.

Visa en lista med containrar

Det här exemplet visar resultatet av en liståtgärd som returnerar två containrar. Begärande-URI:n är följande:

GET https://myaccount.blob.core.windows.net/?comp=list&prefix=c&maxresults=3&include=metadata  

Prefixet "c" har angetts för att filtrera listan. Det maximala antalet resultat som ska returneras har angetts till 3. Taggen NextMarker visar namnet på containern som ska returneras vid en efterföljande listningsåtgärd.

<?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>  

Lista blobar och ögonblicksbilder

Det här exemplet visar resultatet av en liståtgärd som returnerar blobar och ögonblicksbilder i en container med namnet mycontainer. Begärande-URI:n är följande:

GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&include=snapshots&include=metadata  

Svaret innehåller både blobar och ögonblicksbilder:

<?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>  

Lista blobar med en avgränsare

Det här exemplet visar resultatet av en liståtgärd som returnerar blobar under en container med namnet mycontainer. Begärande-URI:n är följande:

GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&delimiter=/&maxresults=4  

I det här fallet anges parametern delimiter som /. Svarstexten innehåller taggen BlobPrefix , som representerar gruppen med blobar som börjar med samma understräng, inklusive avgränsare.

Exempelblobarna under containern är följande. De första fyra returneras i den första listningsåtgärden, eftersom MaxResults är inställd på 4. Observera att myfolder/blobA.txt och myfolder/blobB.txt grupperas tillsammans i svarstexten i taggen BlobPrefix och räknas som en enda blob när det gäller antalet returnerade entiteter. Om du vill returnera blobarna som börjar med det här prefixet gör du en efterföljande begäran där prefixparametern är inställd på myfolder/.

  • blob1.txt

  • blob2.txt

  • myfolder/blobA.txt

  • myfolder/blobB.txt

  • newblob1.txt

  • newblob2.txt

Nästa blob som ska returneras är newblob2.txt. Blobnamnet anges i taggen NextMarker .

<?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>  

Lista blobar i rotcontainern

Om du vill lista blobar i rotcontainern kan du använda följande URL:

https://myaccount.blob.core.windows.net/$root?restype=container&comp=list&maxresults=10  

Tänk på att när du listar blobarna i rotcontainern innehåller XML-svarstexten inte någon explicit referens till rotcontainern i blobens URL fält. Här är ett exempelsvar som visar blobar i rotcontainern:

  
<?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>  
  

Se även

Lista containrar
Lista blobar
Blob Service-koncept
Versionshantering för Azure Storage-tjänsterna