Mencantumkan sumber daya penyimpanan Blob

BLob service API mencakup operasi untuk mencantumkan kontainer dalam akun (operasi Daftar Kontainer ) dan blob dalam kontainer (operasi Cantumkan Blob ). Operasi ini memiliki beberapa fitur umum yang perlu dicatat.

Operasi daftar mengembalikan respons XML yang berisi semua atau sebagian dari daftar yang diminta. Operasi mengembalikan entitas dalam urutan alfabet.

Topik ini berisi subtopik berikut:

Atur hasil maksimum

Mengambil hasil daftar parsial dengan penanda

Memfilter hasil daftar

Melintasi namespace blob

Format respons XML

Atur hasil maksimum

Untuk menentukan jumlah maksimum hasil yang akan dikembalikan dalam satu panggilan ke operasi daftar, tentukan nilai untuk maxresults parameter pada URI permintaan.

Jika jumlah maksimum hasil tidak ditentukan dalam permintaan atau jika lebih besar dari 5.000, server 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 daftar dilakukan terhadap sumber daya tertentu, respons mungkin berisi semua hasil, atau mungkin berisi subset hasil dan nilai penanda. Nilai penanda dapat diteruskan ke panggilan berikutnya untuk mengembalikan kumpulan hasil berikutnya (lalu berikutnya) hingga daftar selesai dan tidak ada penanda yang dikembalikan.

Nilai penanda disertakan dalam NextMarker elemen respons XML. NextMarker Saat elemen kosong, daftar selesai. Nilai NextMarker adalah nilai string yang buram bagi klien.

Untuk mengembalikan kumpulan hasil berikutnya dalam operasi berikutnya, teruskan nilai yang dikembalikan dalam NextMarker tag sebagai marker parameter pada URI permintaan.

Memfilter hasil daftar

Daftar hasil dapat difilter dengan menentukan string awalan pada permintaan dengan menggunakan prefix parameter . Operasi daftar kemudian mengembalikan entitas yang memiliki nama yang dimulai dengan awalan tersebut. prefix Jika parameter ditentukan pada permintaan URI, XML respons menyertakan elemen yang Prefix berisi karakter awalan atau karakter. Misalnya, menentukan awalan dengan nilai "c" mengembalikan <Prefix>``c``</Prefix> dalam XML respons. Misalnya, lihat bagian Cantumkan kontainer nanti dalam topik ini.

Melintasi namespace blob

Operasi List Blobs memiliki parameter tambahan delimiter yang memungkinkan pemanggil melintasi namespace blob dengan menggunakan pemisah yang dikonfigurasi pengguna. Pemisah mungkin satu karakter atau string. Ketika permintaan menyertakan parameter ini, operasi mengembalikan BlobPrefix elemen . Elemen BlobPrefix dikembalikan sebagai pengganti semua blob dengan nama yang dimulai dengan substring yang sama hingga penampilan karakter pemisah. Nilai BlobPrefix elemen adalah substring+pemisah, di mana substring adalah substring umum yang memulai satu atau beberapa nama blob, dan pemisah adalah nilai parameter pemisah .

Anda dapat menggunakan nilai BlobPrefix untuk melakukan panggilan berikutnya untuk mencantumkan blob yang dimulai dengan awalan ini. Tentukan nilai BlobPrefix untuk permintaan berikutnya. Dengan cara ini, Anda dapat melintasi hierarki virtual blob seolah-olah itu adalah sistem file. Misalnya, lihat Mencantumkan blob dengan pemisah nanti dalam topik ini.

Perhatikan bahwa setiap BlobPrefix yang dikembalikan dihitung terhadap hasil maksimum.

Perlu diingat juga bahwa Anda tidak dapat mencantumkan rekam jepret blob jika Anda menyertakan pemisah 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 diperlihatkan dalam contoh kode nanti dalam topik ini.

Isi respons mencakup nilai semua parameter yang ditentukan pada URI permintaan sebagai elemen dalam isi respons.

Nilai DateTime yang dikembalikan dalam Last-Modified elemen dalam format RFC 1123. Untuk informasi selengkapnya tentang DateTime nilai, lihat Representasi nilai tanggal/waktu di header.

Mencantumkan kontainer

Contoh ini menunjukkan hasil operasi daftar 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 diatur ke 3. Tag NextMarker menunjukkan nama kontainer yang akan dikembalikan pada operasi daftar 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>  

Mencantumkan blob dan rekam jepret

Contoh ini menunjukkan hasil operasi daftar yang mengembalikan blob dan rekam jepret dalam kontainer 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 blob dan rekam jepret:

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

Mencantumkan blob dengan pemisah

Contoh ini menunjukkan hasil operasi daftar yang mengembalikan blob 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 /. Isi respons mencakup BlobPrefix tag , yang mewakili grup blob yang dimulai dengan substring yang sama, termasuk pemisah.

Contoh blob di bawah kontainer adalah sebagai berikut. Empat pertama dikembalikan dalam operasi daftar pertama, karena MaxResults diatur ke 4. Perhatikan bahwa myfolder/blobA.txt dan myfolder/blobB.txt dikelompokkan bersama dalam isi respons dalam BlobPrefix tag dan dihitung sebagai blob tunggal dalam hal jumlah entitas yang dikembalikan. Untuk mengembalikan blob 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

Blob berikutnya yang akan dikembalikan adalahnewblob2.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 blob dalam kontainer akar

Untuk mencantumkan blob di kontainer akar, Anda dapat menggunakan URL berikut:

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

Perlu diingat bahwa ketika Anda mencantumkan blob dalam kontainer akar, isi respons XML tidak menyertakan referensi eksplisit ke kontainer akar di bidang blob URL . Berikut adalah contoh respons yang mencantumkan blob dalam kontainer 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

Mencantumkan Kontainer
Mencantumkan blob
Konsep Blob service
Penerapan versi untuk layanan Azure Storage