Продажи: 1-800-867-1389

Перечисление больших двоичных объектов

Обновлено: Февраль 2015 г.

Операция List Blobs перечисляет список больших двоичных объектов в указанном контейнере.

Запрос List Blobs можно составить следующим образом. Рекомендуется использовать протокол HTTPS. Замените myaccount именем нужной учетной записи хранения.

 

Метод URI запроса Версия HTTP

GET

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

HTTP/1.1

При построении запроса к эмулированной службе хранилища укажите имя узла эмулятора и порт службы BLOB-объектов как 127.0.0.1:10000, затем укажите имя эмулированной учетной записи хранилища.

 

Метод URI запроса Версия HTTP

GET

http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=list

HTTP/1.1

Дополнительные сведения см. в Использование эмулятора хранилища Azure для разработки и тестирования.

В URI могут быть указаны следующие дополнительные параметры.

 

Параметр Описание

prefix

Необязательно. Фильтрует результаты для возвращения только тех BLOB-объектов, имена которых начинаются с указанного префикса.

delimiter

Необязательно. Когда запрос включает этот параметр, операция возвращает элемент BlobPrefix в тексте ответа, который работает как заполнитель для всех больших двоичных объектов, имена которых начинаются с той же подстроки вплоть до символа разделителя. Разделитель может быть задан одним символом или строкой.

marker

Необязательно. Строковое значение, которое определяет часть списка для возвращения со следующей операцией списка. Операция возвращает значение маркера в тексте ответа, если возвращаемый список неполон. Значение маркера затем можно использовать в последующем вызове для запроса следующего набора элементов списка.

Значение маркера непрозрачно для клиента.

maxresults

Необязательно. Указывает максимальное количество больших двоичных объектов для возвращения, включая все элементы BlobPrefix. Если в запросе не указано maxresults или указано значение более 5000, сервер возвращает до 5000 элементов.

Установка для maxresults значения меньше нуля или равного нулю приводит к возвращению кода ошибки 400 (неправильный запрос).

include={snapshots,metadata,uncommittedblobs,copy}

Необязательно. Задает один или несколько наборов данных для включения в ответ.

  • snapshots: указывает, что в перечисление должны быть включены моментальные снимки. Моментальные снимки перечисляются в ответе от самых старых к самым новым.

  • metadata: указывает, что в ответе должны возвращаться метаданные большого двоичного объекта.

  • uncommittedblobs: задает включение в ответ больших двоичных объектов, для которых были переданы блокировки, но которые не были зафиксированы с помощью Вставка списка блокировок.

  • copy: версия 2012-02-12 и более поздняя версия. Задает включение в ответ метаданных для любой текущей или предыдущей операции Copy Blob.

Для указания более одного из этих параметров в URI необходимо отделять каждый параметр в URL-представлении запятой (" %82").

timeout

Необязательно. Параметр timeout указывается в секундах. Дополнительные сведения см. в Задание времени ожидания для операций службы BLOB-объектов.

В следующей таблице перечислены обязательные и необязательные заголовки запросов.

 

Заголовок запроса Описание

Authorization

Обязательно. Указывает схему проверки подлинности, имя учетной записи и подпись. Дополнительные сведения см. в Проверка подлинности для служб хранения Azure.

Date или x-ms-date

Обязательно. Задает время в формате UTC для запроса. Дополнительные сведения см. в Проверка подлинности для служб хранения Azure.

x-ms-version

Обязательно для всех запросов с проверкой подлинности, необязательно для анонимных запросов. Задает версию операции, используемой для этого запроса. Дополнительные сведения см. в Управление версиями для служб хранилища Azure.

x-ms-client-request-id

Необязательно. Предоставляет сформированное клиентом непрозрачное значение с ограничением в 1 КБ, которое записывается в журналы аналитики, когда включено ведение журналов аналитики хранилища. Этот заголовок настоятельно рекомендуется использовать для соотнесения действий, выполняемых на стороне клиента, с запросами, получаемыми сервером. Дополнительные сведения см. в разделах Сведения о ведении журнала службы аналитики хранилища и Ведение журналов в Azure: использование журналов для отслеживания запросов к хранилищу.

Отсутствует.

Ответ включает код состояния HTTP, набор заголовков ответа и текст ответа в XML-формате.

Успешная операция возвращает код состояния 200 (ОК).

Сведения о кодах состояния см. в разделе Коды состояний и ошибок.

Ответ для этой операции включает следующие заголовки. Ответ может также включать дополнительные стандартные заголовки HTTP. Все стандартные заголовки соответствуют спецификации протокола HTTP/1.1.

 

Заголовок ответа Описание

Content-Type

Задает формат, в котором возвращаются результаты. В настоящее время это значение application/xml.

x-ms-request-id

Этот заголовок однозначно определяет выполненный запрос, его также можно использовать для устранения связанных с запросом неполадок. Дополнительные сведения см. в Устранение неполадок при API-операциях.

x-ms-version

Указывает версию службы BLOB-объектов, используемую для выполнения запроса. Этот заголовок возвращается для запросов, сделанных с помощью версии 2009-09-19 или более новой.

Этот заголовок также возвращается для анонимных запросов без указания версии, если контейнер был помечен как доступный для общего доступа с помощью версии 2009-09-19 службы BLOB-объектов.

Date

Значение даты и времени в формате UTC, сформированное службой и указывающее время, когда был инициирован ответ.

XML-ответ имеет следующий формат.

Обратите внимание, что элементы Prefix, Marker, MaxResults и Delimiter присутствуют, только если они указаны в URI запроса. Элемент NextMarker имеет значение, только если результаты списка неполны.

Моментальные снимки, метаданные больших двоичных объектов и незафиксированные большие двоичные объекты включаются в ответ, только если они указаны параметром include в URI запроса.

В версии 2009-09-19 и более новой свойства BLOB-объектов инкапсулированы в элемент Properties.

В версии 2013-08-15 и более новых версиях элемент EnumerationResults содержит атрибут ServiceEndpoint, указывающий конечную точку большого двоичного объекта, и поле ContainerName, указывающее имя контейнера. В предыдущих версиях два эти атрибута были объединены вместе в поле ContainerName. Также в 2013-08-15 и более новых версиях элемент Url из Blob был удален.

<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults ServiceEndpoint="http://myaccount.blob.core.windows.net/"  ContainerName="mycontainer">
  <Prefix>string-value</Prefix>
  <Marker>string-value</Marker>
  <MaxResults>int-value</MaxResults>
  <Delimiter>string-value</Delimiter>
  <Blobs>
    <Blob>
      <Name>blob-name</name>
      <Snapshot>date-time-value</Snapshot>
      <Properties>
        <Last-Modified>date-time-value</Last-Modified>
        <Etag>etag</Etag>
        <Content-Length>size-in-bytes</Content-Length>
        <Content-Type>blob-content-type</Content-Type>
        <Content-Encoding />
        <Content-Language />
        <Content-MD5 />
        <Cache-Control />
        <x-ms-blob-sequence-number>sequence-number</x-ms-blob-sequence-number>
        <BlobType>BlockBlob|PageBlob</BlobType>
        <LeaseStatus>locked|unlocked</LeaseStatus>
        <LeaseState>available | leased | expired | breaking | broken</LeaseState>
        <LeaseDuration>infinite | fixed</LeaseDuration>
        <CopyId>id</CopyId>
        <CopyStatus>pending | success | aborted | failed </CopyStatus>
        <CopySource>source url</CopySource>
        <CopyProgress>bytes copied/bytes total</CopyProgress>
        <CopyCompletionTime>datetime</CopyCompletionTime>
        <CopyStatusDescription>error string</CopyStatusDescription>
      </Properties>
      <Metadata>   
        <Name>value</Name>
      </Metadata>
    </Blob>
    <BlobPrefix>
      <Name>blob-prefix</Name>
    </BlobPrefix>
  </Blobs>
  <NextMarker />
</EnumerationResults>

LeaseState и LeaseDuration появляются только в версии 2012-02-12 и более новой.

CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime и CopyStatusDescription появляются только в версии 2012-02-12 и более новой, если эта операция включает параметр include={copy}. Эти элементы не появляются, если BLOB-объект не является целевым в операции Copy Blob или если BLOB-объект был изменен после завершения операции Copy Blob с помощью методов Set Blob Properties, Put Blob или Put Block List. Эти элементы также не появляются, если BLOB-объект создан до версии 2012-02-12 с помощью Копирование большого двоичного объекта.

noteПримечание
Начиная с версии 2009-09-19, List Blobs возвращает в тексте ответа следующие переименованные элементы.

  • Last-Modified (ранее LastModified)

  • Content-Length (ранее Size)

  • Content-Type (ранее ContentType)

  • Content-Encoding (ранее ContentEncoding)

  • Content-Language (ранее ContentLanguage)

Элемент Content-MD5 присутствует для больших двоичных объектов, созданных в версии 2009-09-19 и более новой. В версии 2012-02-12 и более новой служба BLOB-объектов вычисляет значение Content-MD5 при передаче BLOB-объектов с использованием Вставка большого двоичного объекта, но не вычисляет это значение, если BLOB-объект создается с использованием Вставка списка блокировок. Можно явным образом задать значение Content-MD5 при создании BLOB-объекта либо вызвать операцию Вставка списка блокировок или Задание свойств больших двоичных объектов.

Если список управления доступом контейнера разрешает анонимный доступ к контейнеру, то любой клиент может вызвать эту операцию. В противном случае эта операция может быть вызвана владельцем учетной записи и кем угодно с подписью коллективного доступа, кто имеет разрешение перечислять большие двоичные объекты в контейнере.

Свойства больших двоичных объектов в ответе

Если запрашивалось, чтобы незафиксированные большие двоичные объекты были включены в перечисление, следует учитывать, что некоторые свойства не устанавливаются, пока объект не будет зафиксирован, поэтому некоторые свойства в ответе возвращены не будут.

Элемент x-ms-blob-sequence-number возвращается только для страничных BLOB-объектов.

Для страничных BLOB-объектов значение, возвращаемое в элементе Content-Length, соответствует значению заголовка x-ms-blob-content-length BLOB-объекта.

Элемент Content-MD5 присутствует в тексте ответа, только если он был установлен для большого двоичного объекта в версии 2009-09-19 или более новой. Свойство Content-MD5 можно задать при создании BLOB-объекта или вызвать Задание свойств больших двоичных объектов. В версии 2012-02-12 и более поздних версиях метод Put Blob задает значение хэша MD5 большого двоичного объекта, даже если запрос Put Blob не включает заголовок MD5.

Метаданные в ответе

Элемент Metadata присутствует, только если параметр include=metadata был указан в URI. В элементе Metadata значение для каждой пары "имя-значение" приводится с элементом, соответствующим имени в паре.

Обратите внимание, что запрошенные этим параметром метаданные должны сохраняться в соответствии с ограничениями на именование, введенными в версии 2009-09-19 службы BLOB-объектов. Начиная с данной версии, для всех имен метаданных необходимо соблюдать соглашения об именах для идентификаторов C#.

Если пара "имя-значение" метаданных нарушает ограничения, введенные в версии 2009-09-19, текст ответа показывает проблемное имя в элементе x-ms-invalid-name, как показано в следующем фрагменте XML.


      …
      <Metadata>
        <MyMetadata1>first value</MyMetadata1>
        <MyMetadata2>second value</MyMetadata2>
        <x-ms-invalid-name>invalid-metadata-name</x-ms-invalid-name>
      </Metadata>
      …

Моментальные снимки в ответе

Моментальные снимки перечисляются в ответе, только если в URI был указан параметр include=snapshots. Моментальные снимки, перечисленные в ответе, не включают элемент LeaseStatus, поскольку моментальные снимки не могут иметь активные аренды.

При вызове List Blobs также нельзя включить моментальные снимки в перечисление. Запрос, который включает и то и другое, возвращает ошибку InvalidQueryParameter (код состояния HTTP 400 — неправильный запрос).

Незафиксированные большие двоичные объекты в ответе

Незафиксированные большие двоичные объекты перечисляются в ответе, только если в URI был указан параметр include=uncommittedblobs. Незафиксированные большие двоичные объекты, перечисленные в ответе, не включают все следующие элементы:

  • Last-Modified

  • Etag

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-MD5

  • Cache-Control

  • Metadata

Возврат результирующих наборов с помощью значения маркера

Если указано значение параметра maxresults и количество больших двоичных объектов для возврата превышает это значение или значение по умолчанию для maxresults, текст ответа будет содержать элемент NextMarker, указывающий на следующий большой двоичный объект, который будет возвращен в последующем запросе. Чтобы вернуть следующий набор элементов, укажите значение NextMarker в качестве параметра маркера в URI в последующем запросе.

Обратите внимание, что значение NextMarker должно обрабатываться как непрозрачное.

Использование разделителя для обхода пространства имен BLOB-объектов

Параметр delimiter позволяет вызывающему объекту обойти пространство имен BLOB-объектов с помощью настроенного пользователем разделителя. Таким образом, можно переходить по виртуальной иерархии BLOB-объектов, как если бы это была файловая система. Разделитель может быть задан одним символом или строкой. Когда запрос включает этот параметр, операция возвращает элемент BlobPrefix. Элемент BlobPrefix возвращается вместо всех больших двоичных объектов, имена которых начинают с той же подстроки вплоть до появления символа разделителя. Значение элемента BlobPrefixsubstring+delimiter, где substring — общая подстрока, с которой начинается одно или несколько имен больших двоичных объектов, а delimiter — значение параметра delimiter.

Можно использовать значение BlobPrefix для последующего вызова с перечислением BLOB-объектов, начинающихся с этого префикса, путем задания значения BlobPrefix для параметра prefix в URI запроса.

Обратите внимание, что каждый возвращенный элемент BlobPrefix засчитывается в максимальный результат, как и каждый элемент Blob.

Большие двоичные объекты перечисляются в тексте ответа в алфавитном порядке, где буквы верхнего регистра идут первыми.

Ошибки копирования в CopyStatusDescription

CopyStatusDescription содержит сведения об ошибке Copy Blob.

  • Если попытка копирования завершается ошибкой и служба BLOB-объектов по-прежнему повторяет операцию, CopyStatus устанавливается в значение pending, а текст CopyStatusDescription описывает сбой, который мог возникнуть во время последней попытки копирования.

  • Если аргумент CopyStatus имеет значение failed, текст CopyStatusDescription содержит описание ошибки, вызвавшей неудачу операции копирования.

В следующей таблице описаны три поля каждого значения CopyStatusDescription.

 

Компонент Описание

Код состояния HTTP

Обычно это целое число из 3 цифр, указывающее ошибку.

Код ошибки

Ключевое слово описания ошибки, предоставляемое Azure в элементе <ErrorCode>. Если элемент <ErrorCode> отсутствует, то используется ключевое слово со стандартным текстом ошибки, связанное с кодом состояния HTTP из 3 цифр по спецификации HTTP. См. раздел Общие коды ошибок API-интерфейса REST.

Сведения

Подробное описание ошибки в кавычках.

В следующей таблице описаны значения CopyStatus и CopyStatusDescription распространенных ошибок.

ImportantВажно!
Приведенный здесь текст описания может быть изменен без уведомления и даже без изменения версии, поэтому не следует полагаться на точное совпадение текста.

 

Сценарий Значение CopyStatus Значение CopyStatusDescription

Операция копирования успешно завершена.

успешно

пустых

Пользователь прекратил операцию копирования до завершения.

aborted

пустых

Во время считывания данных из исходного большого двоичного объекта возникла ошибка операции копирования, однако операция будет повторена.

ожидание

502 (неверный шлюз). «Во время чтения данных из источника возникла ошибка, предполагающая повтор операции. Попытка будет повторена. Время ошибки: <time>»

Во время записи в целевой большой двоичный объект возникла ошибка операции копирования, однако операция будет повторена.

ожидание

500 (внутренняя ошибка сервера). «Обнаружена ошибка, предполагающая повтор операции. Попытка будет повторена. Время ошибки: <time>»

Во время считывания данных из исходного большого двоичного объекта возникла неустранимая ошибка операции копирования.

ошибка

404 (ресурс не найден). «Возникла ошибка копирования во время чтения данных из источника».

noteПримечание
Когда Azure сообщает об этой ошибке, возвращается ключевое слово ResourceNotFound в элементе <ErrorCode>. Если элемент <ErrorCode> отсутствует в ответе, используется стандартное строковое представление состояния HTTP, например NotFound.

Время ожидания, ограничивающее все операции копирования, истекло. (В настоящий момент время ожидания составляет 2 недели.)

ошибка

500 (операция отменена). «Копирование превысило максимально допустимое время».

Во время чтения из источника операция копирования слишком часто завершалась ошибкой и не удовлетворила допустимому количеству попыток. (Это время ожидания предотвращает повторы операции с очень плохим источником в течение двух недель, прежде чем возникает ошибка.)

ошибка

500 (операция отменена). «Копирование завершилось ошибкой во время чтения данных из источника».

Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв
Показ:
© 2015 Microsoft