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
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 BlobPrefix
substring+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