Mencantumkan sumber daya penyimpanan Blob
API layanan Blob mencakup operasi untuk mencantumkan kontainer dalam akun (operasi Kontainer Daftar ) dan gumpalan dalam kontainer (operasi List Blobs ). Operasi ini memiliki beberapa fitur umum yang perlu diperhatikan.
Operasi listing mengembalikan respons XML yang berisi semua atau sebagian dari daftar yang diminta. Operasi mengembalikan entitas dalam urutan abjad.
Topik ini berisi subtopik berikut:
Mengambil hasil daftar parsial dengan penanda
Tetapkan hasil maksimum
Untuk menentukan jumlah maksimum hasil yang akan dikembalikan dalam satu panggilan ke operasi listingan, tentukan nilai untuk maxresults
parameter pada permintaan URI.
Jika jumlah maksimum hasil tidak ditentukan dalam permintaan atau jika lebih besar dari 5.000, server akan mengembalikan hingga maksimum 5.000 item. Jika Anda menentukan jumlah maksimum hasil kurang dari atau sama dengan nol, layanan mengembalikan kode status 400 (Permintaan Buruk).
Mengambil hasil daftar parsial dengan penanda
Pertama kali operasi listingan dilakukan terhadap sumber daya tertentu, respons mungkin berisi semua hasil, atau mungkin berisi subset dari hasil dan nilai penanda. Nilai penanda dapat diteruskan ke panggilan berikutnya untuk mengembalikan rangkaian hasil berikutnya (dan kemudian berikutnya) sampai daftar selesai dan tidak ada penanda yang dikembalikan.
Nilai penanda termasuk dalam NextMarker
elemen respons XML. NextMarker
Ketika elemen kosong, daftar selesai. Nilai NextMarker
adalah nilai string yang buram bagi klien.
Untuk mengembalikan rangkaian hasil berikutnya dalam operasi berikutnya, lewati nilai yang dikembalikan dalam NextMarker
tag sebagai marker
parameter pada permintaan URI.
Memfilter hasil daftar
Daftar hasil dapat disaring dengan menentukan string awalan pada permintaan dengan menggunakan prefix
parameter. Operasi daftar kemudian mengembalikan entitas yang memiliki nama yang dimulai dengan awalan itu. prefix
Jika parameter ditentukan pada permintaan URI, XML respons menyertakan elemen yang Prefix
berisi karakter awalan atau karakter. Misalnya, menentukan awalan dengan nilai "c" kembali <Prefix>``c``</Prefix>
dalam XML respons. Misalnya, lihat bagian Kontainer daftar nanti di topik ini.
Melintasi ruang nama blob
Operasi List Blobs memiliki parameter tambahan delimiter
yang memungkinkan penelepon untuk melintasi namespace blob dengan menggunakan pembatas yang dikonfigurasi pengguna. Pembatas mungkin satu karakter atau string. Ketika permintaan menyertakan parameter ini, operasi mengembalikan BlobPrefix
elemen. Elemen BlobPrefix
dikembalikan di tempat semua gumpalan dengan nama yang dimulai dengan substring yang sama hingga penampilan karakter pembatas. Nilai BlobPrefix
elemen adalah substring + pembatas, di mana substring adalah substring umum yang memulai satu atau lebih nama gumpalan, dan pembatas adalah nilai parameter pembatas .
Anda dapat menggunakan nilai BlobPrefix
untuk membuat panggilan berikutnya untuk mencantumkan gumpalan yang dimulai dengan awalan ini. Tentukan nilai BlobPrefix
untuk permintaan berikutnya. Dengan cara ini, Anda dapat melintasi hierarki virtual gumpalan seolah-olah itu adalah sistem file. Misalnya, lihat Daftar gumpalan dengan pembatas nanti dalam topik ini.
Perhatikan bahwa setiap BlobPrefix
yang dikembalikan dihitung terhadap hasil maksimum.
Juga perlu diingat bahwa Anda tidak dapat mencantumkan snapshot blob jika Anda menyertakan pembatas dengan permintaan. Jika Anda menentukan nilai untuk delimiter
parameter dan juga mengatur include=snapshots
parameter, layanan Blob mengembalikan kesalahan InvalidQueryParameter (kode status HTTP 400 – Permintaan Buruk).
Format respons XML
Output daftar adalah dokumen XML yang formatnya mirip dengan yang ditunjukkan dalam contoh kode nanti dalam topik ini.
Badan respons mencakup nilai-nilai semua parameter yang ditentukan pada permintaan URI sebagai elemen dalam badan respons.
Nilai DateTime
yang dikembalikan dalam elemen adalah Last-Modified
dalam format RFC 1123. Untuk informasi selengkapnya tentang DateTime
nilai, lihat Representasi nilai tanggal/waktu di header.
Kontainer daftar
Contoh ini menunjukkan hasil operasi listingan yang mengembalikan dua kontainer. Permintaan URI adalah sebagai berikut:
GET https://myaccount.blob.core.windows.net/?comp=list&prefix=c&maxresults=3&include=metadata
Awalan "c" ditentukan untuk memfilter daftar. Jumlah maksimum hasil yang akan dikembalikan ditetapkan menjadi 3. Tag NextMarker
menunjukkan nama kontainer yang akan dikembalikan pada operasi listing berikutnya.
<?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>
Daftar gumpalan dan snapshot
Contoh ini menunjukkan hasil operasi listingan yang mengembalikan gumpalan dan snapshot dalam wadah bernama mycontainer. Permintaan URI adalah sebagai berikut:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&include=snapshots&include=metadata
Respons mencakup gumpalan dan 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>
Daftar gumpalan dengan pembatas
Contoh ini menunjukkan hasil operasi listingan yang mengembalikan gumpalan di bawah kontainer bernama mycontainer. Permintaan URI adalah sebagai berikut:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&delimiter=/&maxresults=4
Dalam hal ini, delimiter
parameter ditentukan sebagai /
. Badan respons termasuk BlobPrefix
tag, yang mewakili kelompok gumpalan yang dimulai dengan substring yang sama, termasuk pembatas.
Gumpalan sampel di bawah wadah adalah sebagai berikut. Empat yang pertama dikembalikan dalam operasi daftar pertama, karena MaxResults
diatur ke 4. Perhatikan bahwa myfolder / blobA.txt dan myfolder / blobB.txt dikelompokkan bersama dalam badan respons dalam BlobPrefix
tag dan dihitung sebagai gumpalan tunggal dalam hal jumlah entitas yang dikembalikan. Untuk mengembalikan gumpalan yang dimulai dengan awalan ini, buat permintaan berikutnya di mana parameter awalan diatur ke myfolder/.
blob1.txt
blob2.txt
myfolder/blobA.txt
myfolder/blobB.txt
newblob1.txt
newblob2.txt
Gumpalan berikutnya yang akan dikembalikan adalah newblob2.txt. Nama blob disediakan dalam 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>
Mencantumkan gumpalan dalam wadah akar
Untuk mencantumkan gumpalan dalam wadah root, Anda dapat menggunakan URL berikut:
https://myaccount.blob.core.windows.net/$root?restype=container&comp=list&maxresults=10
Perlu diingat bahwa ketika Anda mencantumkan gumpalan dalam wadah root, badan respons XML tidak menyertakan referensi eksplisit ke wadah root di bidang blob URL
. Berikut adalah respons sampel yang mencantumkan gumpalan dalam wadah akar:
<?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>
Lihat juga
Kontainer Daftar
Daftar Blobs
Konsep layanan Blob
Versi untuk layanan Azure Storage