Blob depolama kaynaklarını listeleme

Blob hizmeti API'sinde bir hesaptaki kapsayıcıları listeleme işlemleri ( Kapsayıcıları Listele işlemi) ve kapsayıcı içindeki bloblar ( Blobları Listeleme işlemi) bulunur. Bu işlemlerin dikkate değer bazı ortak özellikleri vardır.

Listeleme işlemi, istenen listenin tümünü veya bir bölümünü içeren bir XML yanıtı döndürür. İşlem, varlıkları alfabetik sırada döndürür.

Bu konu aşağıdaki alt konuları içerir:

En yüksek sonuçları ayarlama

İşaretçileri olan kısmi liste sonuçlarını alma

Liste sonuçlarını filtreleme

Blob ad alanını dolaşma

XML yanıt biçimi

En yüksek sonuçları ayarlama

Listeleme işlemine yapılan tek bir çağrıda döndürülecek en fazla sonuç sayısını belirtmek için istek URI'sindeki parametre için maxresults bir değer belirtin.

İstekte en fazla sonuç sayısı belirtilmezse veya 5.000'den büyükse, sunucu en fazla 5.000 öğe döndürür. Sıfırdan küçük veya sıfıra eşit maksimum sonuç sayısı belirtirseniz, hizmet 400 (Hatalı İstek) durum kodunu döndürür.

İşaretçileri olan kısmi liste sonuçlarını alma

Listeleme işlemi belirli bir kaynakta ilk kez gerçekleştirildiğinde, yanıt tüm sonuçları içerebilir veya sonuçların bir alt kümesini ve bir işaretçi değerini içerebilir. İşaretçi değeri sonraki çağrıya geçirilerek, liste tamamlanana ve işaretçi döndürülmeyene kadar sonraki sonuç kümesini (ve sonrakini) döndürebilir.

İşaretçi değeri XML yanıtının NextMarker öğesine eklenir. NextMarker Öğe boş olduğunda listeleme tamamlanır. değeri NextMarker , istemciye göre opak olan bir dize değeridir.

Sonraki işlemde bir sonraki sonuç kümesini döndürmek için, etikette döndürülen değeri istek URI'sinde NextMarker parametre olarak marker geçirin.

Liste sonuçlarını filtreleme

Sonuç listesi, parametresi kullanılarak prefix istekte bir ön ek dizesi belirtilerek filtrelenebilir. Ardından liste işlemi, bu ön ekle başlayan adlara sahip varlıkları döndürür. prefix parametre istek URI'sinde belirtilirse, yanıt XML'i ön ek karakterini veya karakterlerini içeren bir Prefix öğe içerir. Örneğin, "c" değerine sahip bir ön ek belirtilmesi yanıt XML'si içinde döndürülür <Prefix>``c``</Prefix> . Örnek için, bu konunun devamında yer alan Kapsayıcıları listeleme bölümüne bakın.

Blob ad alanını dolaşma

Blobları Listele işlemi, çağıranın kullanıcı tarafından yapılandırılmış bir sınırlayıcı kullanarak blob ad alanında dolaşmasını sağlayan ek delimiter bir parametreye sahiptir. Sınırlayıcı tek bir karakter veya dize olabilir. İstek bu parametreyi içerdiğinde, işlem bir BlobPrefix öğe döndürür. BlobPrefix öğe, sınırlayıcı karakterin görünümüne kadar aynı alt dizeyle başlayan adlara sahip tüm blobların yerine döndürülür. öğesinin BlobPrefix değeri substring+sınırlayıcıdır; burada alt dize , bir veya daha fazla blob adı başlayan ortak alt dizedir ve sınırlayıcısınırlayıcı parametresinin değeridir.

bu ön ek ile başlayan blobları listelemek üzere sonraki bir çağrı yapmak için değerini BlobPrefix kullanabilirsiniz. Sonraki istekler için değerini BlobPrefix belirtin. Bu şekilde, sanal bir blob hiyerarşisinde bir dosya sistemiymiş gibi geçiş yapabilirsiniz. Bir örnek için, bu konunun devamında Yer alan Sınırlayıcı ile blobları listeleme konusuna bakın.

Döndürülen her BlobPrefix birinin en yüksek sonuda doğru sayıldığını unutmayın.

Ayrıca, isteğe sınırlayıcı eklerseniz blob anlık görüntülerini listeleyemediğini de unutmayın. Parametre için bir değer belirtir ve parametreyi delimiterinclude=snapshots de ayarlarsanız, Blob hizmeti InvalidQueryParameter hatası (HTTP durum kodu 400 – Hatalı İstek) döndürür.

XML yanıt biçimi

Liste çıktısı, biçimi bu konunun devamında kod örneklerinde gösterilenlere benzeyen bir XML belgesidir.

Yanıt gövdesi, istek URI'sinde belirtilen tüm parametrelerin değerlerini yanıt gövdesi içindeki öğeler olarak içerir.

DateTime öğesinde Last-Modified döndürülen değer RFC 1123 biçimindedir. Değerler hakkında DateTime daha fazla bilgi için bkz. Üst bilgilerde tarih/saat değerlerinin gösterimi.

Kapsayıcıları listeleme

Bu örnekte, iki kapsayıcı döndüren bir listeleme işleminin sonucu gösterilmektedir. İstek URI'si aşağıdaki gibidir:

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

Listeye filtre uygulamak için "c" ön eki belirtildi. Döndürülecek en fazla sonuç sayısı 3 olarak ayarlandı. etiketi, NextMarker sonraki listeleme işleminde döndürülecek kapsayıcının adını gösterir.

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

Blobları ve anlık görüntüleri listeleme

Bu örnekte , mycontainer adlı bir kapsayıcıda blobları ve anlık görüntüleri döndüren listeleme işleminin sonucu gösterilir. İstek URI'si aşağıdaki gibidir:

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

Yanıt hem blobları hem de anlık görüntüleri içerir:

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

Sınırlayıcı içeren blobları listeleme

Bu örnekte , mycontainer adlı kapsayıcının altındaki blobları döndüren listeleme işleminin sonucu gösterilir. İstek URI'si aşağıdaki gibidir:

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

Bu durumda parametresi delimiter olarak /belirtilir. Yanıt gövdesi, sınırlayıcı da dahil olmak üzere aynı alt dizeyle başlayan blob grubunu temsil eden etiketini içerir BlobPrefix .

Kapsayıcının altındaki örnek bloblar aşağıdaki gibidir. İlk dört, 4 olarak ayarlandığından ilk listeleme işleminde MaxResults döndürülür. myfolder/blobA.txt ve myfolder/blobB.txt etiketteki yanıt gövdesinde BlobPrefix birlikte gruplandırılır ve döndürülen varlık sayısı açısından tek bir blob olarak sayılır. Bu ön ek ile başlayan blobları döndürmek için, ön ek parametresinin myfolder/ olarak ayarlandığı sonraki bir istekte bulunabilirsiniz.

  • blob1.txt

  • blob2.txt

  • myfolder/blobA.txt

  • myfolder/blobB.txt

  • newblob1.txt

  • newblob2.txt

Döndürülecek bir sonraki blob newblob2.txt. Blob adı etiketinde NextMarker sağlanır.

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

Kök kapsayıcıdaki blobları listeleme

Kök kapsayıcıdaki blobları listelemek için aşağıdaki URL'yi kullanabilirsiniz:

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

Kök kapsayıcıdaki blobları listelediğinizde, XML yanıt gövdesinin blob URL alanındaki kök kapsayıcıya açık bir başvuru içermediğini unutmayın. Kök kapsayıcıdaki blobları listeleyen örnek bir yanıt aşağıda verilmiştir:

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

Ayrıca bkz.

Kapsayıcıları Listele
Blobları Listeleme
Blob hizmeti kavramları
Azure Depolama hizmetleri için sürüm oluşturma