Wyświetlanie listy zasobów usługi Blob Storage
Interfejs API usługi Blob Service obejmuje operacje wyświetlania listy kontenerów na koncie (operacja Wyświetlanie kontenerów ) i obiektów blob w kontenerze (operacja Wyświetlanie obiektów blob ). Te operacje mają kilka typowych funkcji, które warto zauważyć.
Operacja wyświetlania listy zwraca odpowiedź XML zawierającą wszystkie lub część żądanej listy. Operacja zwraca jednostki w kolejności alfabetycznej.
Ten temat zawiera następujące tematy podrzędne:
Ustawianie maksymalnej liczby wyników
Pobieranie wyników listy częściowej ze znacznikami
Przechodzenie przez przestrzeń nazw obiektu blob
Ustawianie maksymalnej liczby wyników
Aby określić maksymalną liczbę wyników, które mają być zwracane w jednym wywołaniu operacji wyświetlania listy, określ wartość parametru maxresults
dla identyfikatora URI żądania.
Jeśli maksymalna liczba wyników nie zostanie określona w żądaniu lub jeśli jest większa niż 5000, serwer zwraca maksymalnie 5000 elementów. Jeśli określisz maksymalną liczbę wyników mniejszą niż lub równą zero, usługa zwróci kod stanu 400 (Nieprawidłowe żądanie).
Pobieranie wyników listy częściowej ze znacznikami
Przy pierwszym wykonaniu operacji wyświetlania listy dla określonego zasobu odpowiedź może zawierać wszystkie wyniki lub może zawierać podzbiór wyników i wartość znacznika. Wartość znacznika można przekazać do kolejnego wywołania, aby zwrócić następny zestaw wyników (a następnie następny), dopóki lista nie zostanie ukończona i nie zostanie zwrócony żaden znacznik.
Wartość znacznika jest uwzględniana w elemecie NextMarker
odpowiedzi XML. Gdy NextMarker
element jest pusty, lista zostanie ukończona. Wartość jest wartością NextMarker
ciągu nieprzezroczystą dla klienta.
Aby zwrócić następny zestaw wyników w kolejnej operacji, przekaż wartość zwróconą w tagu NextMarker
jako marker
parametr w identyfikatorze URI żądania.
Filtrowanie wyników listy
Listę wyników można filtrować, określając ciąg prefiksu w żądaniu przy użyciu parametru prefix
. Następnie operacja listy zwraca jednostki, które mają nazwy rozpoczynające się od tego prefiksu.
prefix
Jeśli parametr jest określony dla identyfikatora URI żądania, kod XML odpowiedzi zawiera Prefix
element zawierający znak prefiksu lub znaki. Na przykład określenie prefiksu z wartością "c" zwraca <Prefix>``c``</Prefix>
wartość w kodzie XML odpowiedzi. Aby zapoznać się z przykładem, zobacz sekcję Wyświetlanie listy kontenerów w dalszej części tego tematu.
Przechodzenie przez przestrzeń nazw obiektu blob
Operacja Wyświetlanie listy obiektów blob ma dodatkowy delimiter
parametr, który umożliwia obiektowi wywołującym przechodzenie przez przestrzeń nazw obiektów blob przy użyciu ogranicznika skonfigurowanego przez użytkownika. Ogranicznik może być pojedynczym znakiem lub ciągiem. Gdy żądanie zawiera ten parametr, operacja zwraca BlobPrefix
element. Element BlobPrefix
jest zwracany zamiast wszystkich obiektów blob z nazwami rozpoczynającymi się od tego samego podciągu aż do wyglądu znaku ogranicznika. Wartość BlobPrefix
elementu to podciąg+ogranicznik, gdzie podciąg jest wspólnym podciągem rozpoczynającym się co najmniej jedną nazwę obiektu blob, a ogranicznikiem jest wartość parametru ogranicznika .
Możesz użyć wartości BlobPrefix
, aby wykonać kolejne wywołanie, aby wyświetlić listę obiektów blob, które zaczynają się od tego prefiksu. Określ wartość BlobPrefix
dla kolejnych żądań. W ten sposób można przechodzić przez wirtualną hierarchię obiektów blob tak, jakby był to system plików. Aby zapoznać się z przykładem, zobacz Wyświetlanie listy obiektów blob z ogranicznikiem w dalszej części tego tematu.
Należy pamiętać, że każda BlobPrefix
zwrócona wartość jest liczone w kierunku maksymalnego wyniku.
Należy również pamiętać, że nie można wyświetlić listy migawek obiektów blob, jeśli dołączysz ogranicznik do żądania. Jeśli określisz wartość parametru delimiter
, a także ustawisz include=snapshots
parametr, usługa Blob zwróci błąd InvalidQueryParameter (kod stanu HTTP 400 — nieprawidłowe żądanie).
Format odpowiedzi XML
Dane wyjściowe listy to dokument XML, którego format jest podobny do tych pokazanych w przykładach kodu w dalszej części tego tematu.
Treść odpowiedzi zawiera wartości wszystkich parametrów, które zostały określone w identyfikatorze URI żądania jako elementy w treści odpowiedzi.
Wartość DateTime
zwrócona w elemecie Last-Modified
jest w formacie RFC 1123. Aby uzyskać więcej informacji na temat DateTime
wartości, zobacz Reprezentacja wartości daty/godziny w nagłówkach.
Wyświetlanie listy kontenerów
W tym przykładzie przedstawiono wynik operacji wyświetlania listy, która zwraca dwa kontenery. Identyfikator URI żądania jest następujący:
GET https://myaccount.blob.core.windows.net/?comp=list&prefix=c&maxresults=3&include=metadata
Określono prefiks "c", aby filtrować listę. Maksymalna liczba zwracanych wyników została ustawiona na 3. Tag NextMarker
pokazuje nazwę kontenera, który zostanie zwrócony podczas kolejnej operacji wyświetlania listy.
<?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>
Wyświetlanie listy obiektów blob i migawek
W tym przykładzie przedstawiono wynik operacji wyświetlania listy, która zwraca obiekty blob i migawki w kontenerze o nazwie mycontainer. Identyfikator URI żądania jest następujący:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&include=snapshots&include=metadata
Odpowiedź zawiera zarówno obiekty blob, jak i migawki:
<?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>
Wyświetlanie listy obiektów blob z ogranicznikiem
W tym przykładzie przedstawiono wynik operacji wyświetlania listy, która zwraca obiekty blob pod kontenerem o nazwie mycontainer. Identyfikator URI żądania jest następujący:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&delimiter=/&maxresults=4
W tym przypadku delimiter
parametr jest określony jako /
. Treść odpowiedzi zawiera BlobPrefix
tag, który reprezentuje grupę obiektów blob rozpoczynających się od tego samego podciągu, w tym ogranicznika.
Przykładowe obiekty blob poniżej kontenera są następujące. Pierwsze cztery są zwracane w pierwszej operacji wyświetlania listy, ponieważ MaxResults
jest ustawiona na wartość 4. Należy pamiętać, że folder myfolder/blobA.txt i myfolder/blobB.txt są grupowane razem w treści odpowiedzi w tagu BlobPrefix
i są liczone jako pojedynczy obiekt blob pod względem liczby zwróconych jednostek. Aby zwrócić obiekty blob rozpoczynające się od tego prefiksu, utwórz kolejne żądanie, w którym parametr prefiksu jest ustawiony na myfolder/.
blob1.txt
blob2.txt
myfolder/blobA.txt
myfolder/blobB.txt
newblob1.txt
newblob2.txt
Następny obiekt blob, który ma zostać zwrócony, to newblob2.txt. Nazwa obiektu blob jest podana w tagu NextMarker
.
<?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>
Wyświetlanie listy obiektów blob w kontenerze głównym
Aby wyświetlić listę obiektów blob w kontenerze głównym, możesz użyć następującego adresu URL:
https://myaccount.blob.core.windows.net/$root?restype=container&comp=list&maxresults=10
Pamiętaj, że po wyświetleniu listy obiektów blob w kontenerze głównym treść odpowiedzi XML nie zawiera jawnego odwołania do kontenera głównego w polu obiektu blob URL
. Oto przykładowa odpowiedź, która wyświetla listę obiektów blob w kontenerze głównym:
<?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>
Zobacz też
Wyświetlanie listy kontenerów
Wyświetlanie listy obiektów blob
Pojęcia dotyczące usługi Blob
Przechowywanie wersji usług Azure Storage