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:
İşaretçileri olan kısmi liste sonuçlarını alma
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 delimiter
include=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