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:

Tetapkan hasil maksimum

Mengambil hasil daftar parsial dengan penanda

Memfilter hasil daftar

Melintasi ruang nama blob

Format respons XML

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