Blob Storage-erőforrások listázása

A Blob szolgáltatás API-ja olyan műveleteket tartalmaz, mint a fiókok tárolóinak listázása (a Tárolók listázása művelet) és a tárolón belüli blobok listázása (a Blobok listázása művelet). Ezek a műveletek olyan gyakori funkciókkal rendelkeznek, amelyeket érdemes megjegyezni.

A listázási művelet olyan XML-választ ad vissza, amely a kért lista egészét vagy egy részét tartalmazza. A művelet betűrendben adja vissza az entitásokat.

Ez a témakör a következő altopikát tartalmazza:

Maximális eredmények beállítása

Részleges listaeredmények lekérése jelölőkkel

Listaeredmények szűrése

A blobnévtér bejárása

XML-válasz formátuma

Maximális eredmények beállítása

A listázási művelet egyetlen hívásában visszaadandó eredmények maximális számának megadásához adja meg a paraméter értékét a maxresults kérelem URI-ján.

Ha az eredmények maximális száma nincs megadva a kérelemben, vagy ha nagyobb, mint 5000, a kiszolgáló legfeljebb 5000 elemet ad vissza. Ha nullánál kisebb vagy egyenlő eredményt ad meg, a szolgáltatás a 400-es állapotkódot adja vissza (hibás kérés).

Részleges listaeredmények lekérése jelölőkkel

Amikor először hajtja végre a listázási műveletet egy adott erőforráson, a válasz minden eredményt tartalmazhat, vagy az eredmények egy részhalmazát és egy jelölőértéket is tartalmazhat. A jelölő értéke átadható a következő hívásnak, hogy visszaadja a következő eredményhalmazt (majd a következőt), amíg a lista be nem fejeződik, és a rendszer nem ad vissza jelölőt.

A jelölő értéke az NextMarker XML-válasz elemében szerepel. Ha az NextMarker elem üres, a listaelem befejeződött. Az értéke NextMarker egy sztringérték, amely nem átlátszó az ügyfél számára.

Ha a következő eredményhalmazt egy későbbi műveletben szeretné visszaadni, adja át a NextMarker címkében visszaadott értéket paraméterként a marker kérelem URI-jának.

Listaeredmények szűrése

Az eredmények listája úgy szűrhető, hogy megad egy előtagsztringet a kérelemben a prefix paraméter használatával. A listaművelet ezután visszaadja azokat az entitásokat, amelyek neve az előtaggal kezdődik. Ha a prefix paraméter meg van adva a kérelem URI-ján, a válasz XML-fájlja tartalmaz egy Prefix előtag karaktert vagy karaktereket tartalmazó elemet. Ha például egy "c" értékkel rendelkező előtagot ad vissza <Prefix>``c``</Prefix> a válasz XML-fájljában. Példaként tekintse meg a témakör későbbi , Tárolók listázása szakaszát.

A blobnévtér bejárása

A Blobok listázása művelet egy további delimiter paraméterrel rendelkezik, amely lehetővé teszi a hívó számára a blobnévtér bejárását egy felhasználó által konfigurált elválasztó használatával. Az elválasztó karakter lehet egy karakter vagy egy sztring. Ha a kérelem tartalmazza ezt a paramétert, a művelet egy BlobPrefix elemet ad vissza. A BlobPrefix rendszer az elemet az összes olyan blob helyett adja vissza, amelynek neve ugyanazzal a sztringgel kezdődik, egészen az elválasztó karakter megjelenéséhez. Az elem értéke a BlobPrefixsubstring+határolójel, ahol a sztring az a közös részkarakter, amely egy vagy több blobnevet kezd el, az elválasztó pedig az elválasztó paraméter értéke.

Az értékével BlobPrefix egy későbbi hívást indíthat az előtaggal kezdődő blobok listázására. Adja meg a következő kérések értékét BlobPrefix . Ily módon úgy haladhat át a blobok virtuális hierarchiájában, mintha fájlrendszer lenne. Példa: Blobok listázása határolójellel a témakör későbbi részében.

Vegye figyelembe, hogy a visszaadott értékek BlobPrefix a maximális eredmény felé számlálnak.

Ne feledje továbbá, hogy a blobpillanatképek nem listázhatók, ha elválasztójelet ad meg a kéréshez. Ha megad egy értéket a delimiter paraméterhez, és beállítja a include=snapshots paramétert is, a Blob szolgáltatás InvalidQueryParameter hibát ad vissza (HTTP-állapotkód: 400 – Hibás kérelem).

XML-válasz formátuma

A lista kimenete egy XML-dokumentum, amelynek formátuma hasonló a jelen témakör későbbi, kód példáiban szereplő formátumhoz.

A válasz törzse tartalmazza a kérelem URI-ján a választörzs elemeiként megadott összes paraméter értékét.

Az DateTime elemben Last-Modified visszaadott érték RFC 1123 formátumú. Az értékekkel kapcsolatos DateTime további információkért lásd: Dátum-/időértékek ábrázolása fejlécekben.

Tárolók listázása

Ez a példa egy listázási művelet eredményét mutatja be, amely két tárolót ad vissza. A kérelem URI-ja a következő:

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

A lista szűréséhez a "c" előtag lett megadva. A visszaadandó eredmények maximális száma 3-ra volt állítva. A NextMarker címke annak a tárolónak a nevét jeleníti meg, amelyet a rendszer egy későbbi listázási művelet során ad vissza.

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

Blobok és pillanatképek listázása

Ez a példa egy listázási művelet eredményét mutatja be, amely blobokat és pillanatképeket ad vissza egy mycontainer nevű tárolóban. A kérelem URI-ja a következő:

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

A válasz a blobokat és a pillanatképeket is tartalmazza:

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

Határolójellel rendelkező blobok listázása

Ez a példa egy listázási művelet eredményét mutatja be, amely egy mycontainer nevű tároló alatt lévő blobokat ad vissza. A kérelem URI-ja a következő:

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

Ebben az esetben a delimiter paraméter a következőként van megadva: /. A válasz törzse tartalmazza a BlobPrefix címkét, amely az azonos sztringgel kezdődő blobok csoportját jelöli, beleértve az elválasztót is.

A tároló alatti mintablobok a következők. Az első négyet a rendszer az első listázási műveletben adja vissza, mert MaxResults a értéke 4. Vegye figyelembe, hogy a myfolder/blobA.txt és a myfolder/blobB.txt a címke választörzsében BlobPrefix vannak csoportosítva, és a visszaadott entitások számát tekintve egyetlen blobnak számítanak. Az ezzel az előtaggal kezdődő blobok visszaadásához küldjön egy további kérést, amelyben az előtag paramétere myfolder/értékre van állítva.

  • blob1.txt

  • blob2.txt

  • myfolder/blobA.txt

  • myfolder/blobB.txt

  • newblob1.txt

  • newblob2.txt

A következő visszaadandó blob aznewblob2.txt. A blob nevét a NextMarker címke tartalmazza.

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

Blobok listázása a gyökértárolóban

A gyökértárolóban lévő blobok listázásához használja a következő URL-címet:

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

Ne feledje, hogy a gyökértárolóban lévő blobok listázásakor az XML-válasz törzse nem tartalmaz explicit hivatkozást a gyökértárolóra a blob URL mezőjében. Íme egy mintaválasz, amely felsorolja a blobokat a gyökértárolóban:

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

Lásd még

Tárolók listázása
Blobok listázása
A Blob szolgáltatással kapcsolatos fogalmak
Az Azure Storage-szolgáltatások verziószámozása