Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
API сервиса Blob включает операции для размещения контейнеров внутри аккаунта (операция List Containers ) и blob внутри контейнера (операция List Blobs ). У этих операций есть общие черты, которые стоит отметить.
Операция перечисления возвращает ответ, содержащий весь или часть запрошенного списка. Операция возвращает сущности в алфавитном порядке.
Эта тема содержит следующие подтемы:
Установите максимальные результаты
Получить частичные результаты списка с помощью маркеров
Пройтись по пространству имён blob
Установите максимальные результаты
Чтобы указать максимальное количество результатов, которые должны быть возвращены за один вызов операции листинга, укажите значение maxresults параметра в URI запроса.
Если максимальное количество результатов не указано в запросе или оно превышает 5 000, сервер возвращает максимум до 5 000 элементов. Если указать максимальное количество результатов меньше или равное нулю, сервис возвращает статус 400 (Плохой запрос).
Получить частичные результаты списка с помощью маркеров
При первом выполнении операции листинга с определённым ресурсом ответ может содержать все результаты или подмножество результатов и значение маркера. Значение маркера можно передать следующему вызову для возврата следующего набора результатов (а затем и следующего), пока список не будет заполнен и маркер не вернутся.
Значение маркера возвращается как NextMarker. В XML-ответе — NextMarker элемент в теле ответа. В ответе Apache Arrow List Blobs NextMarker — это поле в метаданных схемы. Когда NextMarker он пуст, список завершён. Значение NextMarker — это строка, которая непрозрачна для клиента.
Чтобы вернуть следующий набор результатов в последующей операции, передайте NextMarker значение в виде marker параметра в URI запроса.
Результаты списка фильтров
Список результатов можно отфильтровать, указав строку префикса в запросе с помощью параметра prefix . Операция списка затем возвращает сущности с именами, начинающимися с этого префикса. Если prefix параметр указан в URI запроса, ответный XML включает Prefix элемент, содержащий префиксный символ или символы. Например, указание префикса со значением «c» возвращается <Prefix>``c``</Prefix> в XML ответа. Для примера см. раздел «Список контейнеров » позже в этой теме.
Пройтись по пространству имён blob
Операция List Blobs имеет дополнительный delimiter параметр, позволяющий вызывающему проходить пространство имён blob, используя пользовательский разделитель. Разделитель может быть одним символом или строкой. Когда запрос включает этот параметр, операция возвращает BlobPrefix элемент. Элемент BlobPrefix возвращается вместо всех капель с именами, начинающимися с одной и той же подстроки, вплоть до появления символа разделителя. Значение BlobPrefix элемента — substring+delimiter, где substring — это общая подстрока, начинающая одно или несколько имен blob, а delimiter — значение параметра разделителя .
Вы можете использовать значение of BlobPrefix для выполнения последующего вызова, чтобы получить список больших двоичных объектов, которые начинаются с этого префикса. Укажите значение для BlobPrefix последующих запросов. Таким образом, можно пройти по виртуальной иерархии больших двоичных объектов, как будто это файловая система. Для примера см. раздел « Список пятен с разделителем » позже в этой теме.
Обратите внимание, что каждый BlobPrefix возврат засчитывается в максимальный результат.
Также имейте в виду, что нельзя указывать снимки blob, если вы добавляете разделитель с запросом. Если указать значение delimiter параметра и одновременно установить include=snapshots параметр, сервис Blob возвращает ошибку InvalidQueryParameter (HTTP-код статуса 400 – Bad Request).
Формат ответа XML
Вывод списка — это XML-документ, формат которого похож на те, что показаны в примерах кода позже в этой теме.
Тело ответа включает значения всех параметров, указанных в URI запроса, как элементы внутри тела ответа.
Значение DateTime , которое возвращается в элементе Last-Modified , находится в формате RFC 1123. Для получения дополнительной информации о DateTime значениях см. Представление значений даты/времени в заголовках.
Список контейнеров
Этот пример показывает результат операции перечисления, которая возвращает два контейнера. URI запроса следующий:
GET https://myaccount.blob.core.windows.net/?comp=list&prefix=c&maxresults=3&include=metadata
Префикс «c» был задан для фильтрации списка. Максимальное количество результатов было установлено на уровне 3. Тег показывает название контейнера, который будет возвращён при последующей операции NextMarker размещения в списке.
<?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>
Список скоплений и снимков
Этот пример показывает результат операции листинга, которая возвращает blobs и snapshots в контейнере с названием mycontainer. URI запроса следующий:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&include=snapshots&include=metadata
Ответ включает как пятны, так и снимки:
<?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>
Список скоплений с разделителем
Этот пример показывает результат операции листинга, которая возвращает blobs под контейнером с именем mycontainer. URI запроса следующий:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&delimiter=/&maxresults=4
В этом случае delimiter параметр задаётся как /. Тело ответа включает BlobPrefix тег, который представляет группу пятен, начинающихся с одной и той же подстроки, включая разделитель.
Образцы под контейнером следующие. Первые четыре возвращаются в первой операции перечисления, так MaxResults как установлена на 4. Обратите внимание, что myfolder/blobA.txt и myfolder/blobB.txt сгруппированы вместе в теле ответа в BlobPrefix теге и считаются единым blob по количеству возвращённых сущностей. Чтобы вернуть пятны, начинающиеся с этого префикса, выполните следующий запрос, в котором параметр префикса будет установлен в myfolder/.
blob1.txt
blob2.txt
моя папка/blobA.txt
моя папка/blobB.txt
newblob1.txt
newblob2.txt
Следующая капля, которую возвращают, — newblob2.txt. Имя blob указано в 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>
Список капель в корневом контейнере
Чтобы перечислить блобы в корневом контейнере, можно использовать следующий URL:
https://myaccount.blob.core.windows.net/$root?restype=container&comp=list&maxresults=10
Имейте в виду, что когда вы указываете blob-файлы в корневом контейнере, ответное тело XML не содержит явной ссылки на корневой контейнер в поле URL blob. Вот пример ответа, в котором перечислены blobs в корневом контейнере:
<?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>
Формат отклика Apache Arrow
Начиная с версии 2026-06-06, операция List Blobs также может возвращать результаты в формате Apache Arrow . Операция List Containers на данный момент не поддерживает Apache Arrow.
Note
Поддержка List Blobs в Apache Arrow сейчас находится в публичном предварительном просмотре.
Вывод списка — это двоичный поток Apache Arrow. Каждый пример в этой теме показывает запись как таблицу, в которой каждая строка представляет собой префикс blob или blob, а каждый столбец — поле. Поля временной метки, такие Last-Modifiedкак , отображаются здесь в формате ISO 8601. За каждой таблицей следуют NumberOfRecords значения и NextMarker из метаданных схемы.
Список скоплений и снимков в формате Apache Arrow
Этот пример показывает результат операции листинга, которая возвращает blobs и snapshots в контейнере с названием mycontainer. URI запроса следующий:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&include=snapshots&include=metadata
Ответ включает как пятны, так и снимки:
Name |
ResourceType |
Snapshot |
Last-Modified |
Etag |
Content-Length |
Content-Type |
Content-Encoding |
Content-Language |
Cache-Control |
x-ms-blob-sequence-number |
BlobType |
LeaseStatus |
Metadata |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| blob1.txt | blob | null | 2009-09-09T09:20:02Z | 0x8CBFF45D8A29A19 | 100 | text/html | null | en-US | no-cache | null | Блоб-блок (BlockBlob) | Разблокирован | {Цвет: синий, BlobNumber: 01, SomeMetadataName: SomeMetadataValue} |
| blob2.txt | blob | 2009-09-09T09:20:03.0427659Z | 2009-09-09T09:20:02Z | 0x8CBFF45D8B4C212 | 5000 | application/octet-stream | gzip | null | null | null | Блоб-блок (BlockBlob) | null | {Color: green, BlobNumber: 02, SomeMetadataName: SomeMetadataValue, x-ms-invalid-name: nasdf$@#$$} |
| blob2.txt | blob | 2009-09-09T09:20:03.1587543Z | 2009-09-09T09:20:02Z | 0x8CBFF45D8B4C212 | 5000 | application/octet-stream | gzip | null | null | null | Блоб-блок (BlockBlob) | null | {Цвет: зелёный, BlobNumber: 02, SomeMetadataName: SomeMetadataValue} |
| blob2.txt | blob | null | 2009-09-09T09:20:02Z | 0x8CBFF45D8B4C212 | 5000 | application/octet-stream | gzip | null | null | null | Блоб-блок (BlockBlob) | Разблокирован | {Цвет: зелёный, BlobNumber: 02, SomeMetadataName: SomeMetadataValue} |
| blob3.txt | blob | null | 2009-09-09T09:20:03Z | 0x8CBFF45D911FADF | 16384 | image/jpeg | null | null | null | 3 | PageBlob | locked | {Цвет: жёлтый, Число пятны: 03, SomeMetadataName: SomeMetadataValue} |
Метаданные схемы содержат NumberOfRecords = 5 и NextMarker = пусто, что указывает на завершение списка.
Список blobs с разделителем в формате Apache Arrow
Этот пример показывает результат операции листинга, которая возвращает blobs под контейнером с именем mycontainer. URI запроса следующий:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&delimiter=/&maxresults=4
В этом случае delimiter параметр задаётся как /. Тело ответа включает запись с ResourceType установленным в blobprefix, что представляет группу капель, начинающихся с одной и той же подстроки, включая разделитель.
Образцы под контейнером следующие. Первые четыре возвращаются в первой операции перечисления, так MaxResults как установлена на 4. Обратите внимание, что myfolder/blobA.txt и myfolder/blobB.txt сгруппированы вместе в ответном теле записи blobprefix и считаются единым blob по количеству возвращаемых сущностей. Чтобы вернуть пятны, начинающиеся с этого префикса, выполните следующий запрос, в котором параметр префикса будет установлен в myfolder/.
blob1.txt
blob2.txt
моя папка/blobA.txt
моя папка/blobB.txt
newblob1.txt
newblob2.txt
newblob2.txt будет следующим возвращенным блобом, когда opaqueString он будет передан в качестве marker параметра в следующем запросе.
Name |
ResourceType |
Last-Modified |
Etag |
Content-Length |
Content-Type |
Content-Language |
Cache-Control |
BlobType |
LeaseStatus |
|---|---|---|---|---|---|---|---|---|---|
| blob1.txt | blob | 2009-09-27T18:41:57Z | 0x8CAE7D55D050B8B | 8 | text/html | en-US | no-cache | Блоб-блок (BlockBlob) | Разблокирован |
| blob2.txt | blob | 2009-09-27T12:18:50Z | 0x8CAE7D55CF6C339 | 100 | text/html | en-US | no-cache | Блоб-блок (BlockBlob) | Разблокирован |
| myfolder/ | blobprefix | null | null | null | null | null | null | null | null |
| newblob1.txt | blob | 2009-09-27T16:31:57Z | 0x8CAE7D55CF6C339 | 25 | text/html | en-US | no-cache | Блоб-блок (BlockBlob) | Разблокирован |
Метаданные схемы содержат NumberOfRecords = 4 и .NextMarker = opaqueString
См. также
Список контейнеров
Список объектов
Концепции блоб-сервиса
Versioning for the служба хранилища Azure services