Udostępnij za pośrednictwem


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

Filtrowanie wyników listy

Przechodzenie przez przestrzeń nazw obiektu blob

Format odpowiedzi XML

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