Sdílet prostřednictvím


Výpis prostředků úložiště objektů blob

Rozhraní API služby Blob Zahrnuje operace pro výpis kontejnerů v rámci účtu (operace List Containers ) a objektů blob v rámci kontejneru (operace List Blobs ). Tyto operace mají některé společné funkce, které stojí za zmínku.

Operace výpisu vrátí odpověď XML, která obsahuje celý požadovaný seznam nebo jeho část. Operace vrátí entity v abecedním pořadí.

Toto téma obsahuje následující dílčí témata:

Nastavení maximálního počtu výsledků

Načtení částečných výsledků seznamu pomocí značek

Filtrovat výsledky seznamu

Procházení oboru názvů objektů blob

Formát odpovědi XML

Nastavení maximálního počtu výsledků

Pokud chcete zadat maximální počet výsledků, které se mají vrátit při jednom volání operace výpisu, zadejte hodnotu parametru maxresults v identifikátoru URI požadavku.

Pokud v požadavku není zadán maximální počet výsledků nebo pokud je větší než 5 000, server vrátí maximálně 5 000 položek. Pokud zadáte maximální počet výsledků menší nebo roven nule, vrátí služba stavový kód 400 (chybný požadavek).

Načtení částečných výsledků seznamu pomocí značek

Při prvním provedení operace výpisu u konkrétního prostředku může odpověď obsahovat všechny výsledky nebo může obsahovat podmnožinu výsledků a hodnotu značky. Hodnotu značky je možné předat následnému volání, aby se vrátila další sada výsledků (a pak další), dokud se seznam nedokončil a nevrátí se žádná značka.

Hodnota značky je zahrnuta v NextMarker elementu odpovědi XML. NextMarker Když je prvek prázdný, výpis je dokončen. Hodnota NextMarker je řetězcová hodnota, která je pro klienta neprůzná.

Pokud chcete vrátit další sadu výsledků v následné operaci, předejte hodnotu vrácenou NextMarker ve značce jako marker parametr v identifikátoru URI požadavku.

Filtrovat výsledky seznamu

Seznam výsledků lze filtrovat zadáním řetězce předpony v požadavku pomocí parametru prefix . Operace seznamu pak vrátí entity, které mají názvy, které začínají danou předponou. prefix Pokud je parametr zadán v identifikátoru URI požadavku, xml odpovědi obsahuje Prefix prvek obsahující znak nebo znaky předpony. Například zadání předpony s hodnotou "c" vrátí <Prefix>``c``</Prefix> v rámci xml odpovědi. Příklad najdete v části Seznam kontejnerů dále v tomto tématu.

Procházení oboru názvů objektů blob

Operace List Blobs má další delimiter parametr, který volajícímu umožňuje procházet obor názvů objektů blob pomocí uživatelem nakonfigurovaného oddělovače. Oddělovačem může být jeden znak nebo řetězec. Když požadavek obsahuje tento parametr, operace vrátí BlobPrefix element. Element BlobPrefix se vrátí místo všech objektů blob s názvy, které začínají stejným podřetěžcem až po vzhled znaku oddělovače. Hodnota elementu BlobPrefix je substring+oddělovač, kde podřetěžec je běžný podřetěžec, který začíná jeden nebo více názvů objektů blob, a oddělovač je hodnota parametru oddělovače .

Hodnotu BlobPrefix můžete použít k následnému volání seznamu objektů blob, které začínají touto předponou. Zadejte hodnotu BlobPrefix pro další požadavky. Tímto způsobem můžete procházet virtuální hierarchii objektů blob, jako by se jednalo o systém souborů. Příklad najdete v části Výpis objektů blob s oddělovačem dále v tomto tématu.

Všimněte si, že každý BlobPrefix vrácený výsledek se počítá do maximálního výsledku.

Mějte také na paměti, že pokud do požadavku zahrnete oddělovač, nemůžete vypsat snímky objektů blob. Pokud zadáte hodnotu parametru delimiter a také nastavíte include=snapshots parametr, vrátí služba Blob Service chybu InvalidQueryParameter (stavový kód HTTP 400 – Chybný požadavek).

Formát odpovědi XML

Výstupem seznamu je dokument XML, jehož formát se podobá formátu uvedenému v příkladech kódu dále v tomto tématu.

Text odpovědi obsahuje hodnoty všech parametrů, které byly zadány v identifikátoru URI požadavku jako prvky v těle odpovědi.

Hodnota DateTime vrácená v elementu Last-Modified je ve formátu RFC 1123. Další informace o DateTimehodnotách najdete v tématu Reprezentace hodnot data a času v záhlavích.

Výpis kontejnerů

Tento příklad ukazuje výsledek operace výpisu, která vrací dva kontejnery. Identifikátor URI požadavku je následující:

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

Byla zadána předpona "c" pro filtrování seznamu. Maximální počet vrácených výsledků byl nastaven na 3. Značka NextMarker zobrazuje název kontejneru, který se vrátí při následné operaci výpisu.

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

Výpis objektů blob a snímků

Tento příklad ukazuje výsledek operace výpisu, která vrací objekty blob a snímky v kontejneru s názvem mycontainer. Identifikátor URI požadavku je následující:

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

Odpověď zahrnuje objekty blob i snímky:

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

Výpis objektů blob s oddělovačem

Tento příklad ukazuje výsledek operace výpisu, která vrací objekty blob pod kontejnerem s názvem mycontainer. Identifikátor URI požadavku je následující:

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

V tomto případě delimiter je parametr zadaný jako /. Tělo odpovědi obsahuje BlobPrefix značku, která představuje skupinu objektů blob, které začínají stejným podřetěžcem, včetně oddělovače.

Ukázkové objekty blob pod kontejnerem jsou následující. První čtyři se vrátí v první operaci výpisu, protože MaxResults je nastavená na hodnotu 4. Všimněte si, že myfolder/blobA.txt a myfolder/blobB.txt jsou seskupené v textu odpovědi ve BlobPrefix značce a z hlediska počtu vrácených entit se započítávají jako jeden objekt blob. Pokud chcete vrátit objekty blob, které začínají touto předponou, vytvořte následný požadavek, ve kterém je parametr předpony nastavený na myfolder/.

  • blob1.txt

  • blob2.txt

  • myfolder/blobA.txt

  • myfolder/blobB.txt

  • newblob1.txt

  • newblob2.txt

Další objekt blob, který se má vrátit , jenewblob2.txt. Název objektu blob je uvedený ve značce 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>  

Výpis objektů blob v kořenovém kontejneru

K výpisu objektů blob v kořenovém kontejneru můžete použít následující adresu URL:

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

Mějte na paměti, že když vypíšete objekty blob v kořenovém kontejneru, tělo odpovědi XML neobsahuje explicitní odkaz na kořenový kontejner v poli objektu blob URL . Tady je ukázková odpověď, která uvádí objekty blob v kořenovém kontejneru:

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

Viz také

Vypsat kontejnery
Výpis objektů blob
Koncepty služby Blob service
Správa verzí pro služby Azure Storage