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

Получение большого двоичного объекта

Обновлено: Июнь 2014 г.

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

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

 

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

https://myaccount.blob.core.windows.net/mycontainer/myblob

https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

HTTP/1,0

HTTP/1.1

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

 

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

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob

HTTP/1,0

HTTP/1.1

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

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

 

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

snapshot

Необязательно. Параметр моментального снимка является непрозрачным значением DateTime, которое, если присутствует, указывает моментальный снимок BLOB-объекта для получения. Дополнительные сведения о работе с моментальными снимками BLOB-объектов см. в разделе Создание моментальных снимков больших двоичных объектов.

timeout

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

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

 

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

Authorization

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

Date или x-ms-date

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

x-ms-version

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

Range

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

x-ms-range

Необязательно. Возвращают только байты большого двоичного объекта в указанном диапазоне. Если заданы оба параметра, Range и x-ms-range, то служба использует значение x-ms-range. Если параметры не указаны, то возвращается все содержимое большого двоичного объекта. Дополнительные сведения см. в разделе Указание заголовка диапазона для операций службы BLOB-объектов.

x-ms-lease-id:<ID>

Необязательно. Если этот заголовок указан, то операция будет выполнена, только если выполняются оба следующих условия.

  • Аренда BLOB-объекта в настоящее время активна.

  • Идентификатор аренды, указанный в запросе, соответствует данному идентификатору у BLOB-объекта.

Если этот заголовок указан и оба эти условия не выполнены, попытка выполнения запроса окончится неудачей и операция Get Blob завершится ошибкой с кодом состояния 412 (необходимое условие не выполнено).

x-ms-range-get-content-md5: true

Необязательно. Если этот заголовок имеет значение true и указан вместе с заголовком Range, то служба возвращает хэш MD5 для диапазона, пока диапазон меньше или равен 4 МБ.

Если этот заголовок указан без заголовка Range, то служба возвращает код состояния 400 (неверный запрос).

Если этот заголовок имеет значение true и диапазон превышает 4 МБ, то служба возвращает код состояния 400 (неверный запрос).

Origin

Необязательно. Указывает источник, от которого выдан запрос. Наличие этого заголовка приводит к появлению в ответе заголовков совместного использования ресурсов (CORS).

x-ms-client-request-id

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

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

Ответ включает код состояния HTTP, набор заголовков ответа и текст ответа, который содержит большой двоичный объект.

Успешная операция считывания полного большого двоичного объекта возвращает код состояния 200 (ОК).

Успешная операция считывания указанного диапазона возвращает код состояния 206 (частичное содержимое).

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

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

 

Синтаксис Описание

Last-Modified

Дата и время последнего изменения BLOB-объекта. Дата в формате согласно RFC 1123.

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

x-ms-meta-name:value

Набор пары «имя-значение», связанной с этим большим двоичным объектом, в качестве определяемых пользователем метаданных.

Content-Length

Число байтов в тексте ответа.

Content-Type

Тип контента, указанный для большого двоичного объекта. Тип содержимого по умолчанию — application/octet-stream.

Content-Range

Указывает диапазон байтов, возвращенных в случае, если клиент запросил подмножество большого двоичного объекта путем указания заголовка запроса Range.

ETag

Тег сущности содержит значение, которое клиент может использовать для выполнения условных операций GET с помощью заголовка запроса If-Modified. Если версия запроса 2011-08-18 или более поздняя, то значение ETag будет указано в кавычках.

Content-MD5

Если большой двоичный объект имеет хэш MD5 и эта операция Get Blob должна прочитать весь большой двоичный объект, то возвращается этот заголовок ответа, чтобы клиент смог проверить целостность содержимого сообщения.

В версии 2012-02-12 и более поздних метод Put Blob задает значение хэша MD5 большого двоичного объекта, даже если запрос Put Blob не включает заголовок MD5.

Если запрос должен прочитать указанный диапазон и параметр x-ms-range-get-content-md5 имеет значение true, то запрос возвращает хэш MD5 для диапазона, если размер диапазона меньше или равен 4 МБ.

Если ни один из наборов условий не выполняется, то заголовок Content-MD5 не имеет значения.

Если заголовок x-ms-range-get-content-md5 указан без заголовка Range, то служба возвращает код состояния 400 (неверный запрос).

Если заголовок x-ms-range-get-content-md5 имеет значение true и диапазон превышает 4 МБ, то служба возвращает код состояния 400 (неверный запрос).

Content-Encoding

Заголовок возвращает значение, которое было указано для заголовка запроса Content-Encoding.

Content-Language

Заголовок возвращает значение, которое было указано для заголовка запроса Content-Language.

Cache-Control

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

Content-Disposition

Возвращается для запросов к 2013-08-15 и последующей версии. Заголовок возвращает значение, которое было указано для заголовка x-ms-blob-content-disposition.

Поле заголовка ответа Content-Disposition предоставляет дополнительные сведения о том, как обрабатывать полезные данные ответа, а также может использоваться для присоединения дополнительных метаданных. Например, если ему задано значение attachment, то это значит, что агент пользователя не покажет ответ, а выведет на экран диалоговое окно Сохранить как с именем файла, отличным от имени указанного большого двоичного объекта.

x-ms-blob-sequence-number

Текущий порядковый номер для страничного большого двоичного объекта.

Этот заголовок не возвращается для больших двоичных объектов.

x-ms-blob-type: <BlockBlob,PageBlob>

Возвращает тип большого двоичного объекта.

x-ms-copy-completion-time:<datetime>

Версия 2012-02-12 и более поздние. Время завершения последней попытки операции Copy Blob, в которой этот большой двоичный объект был целевым. Это значение может указывать время завершенной, отмененной или неуспешной попытки копирования. Этот заголовок не выводится, если копирование не завершено, если большой двоичный объект не является целевым в операции Copy Blob либо если большой двоичный объект был изменен после завершения операции Copy Blob с помощью методов Set Blob Properties, Put Blob или Put Block List.

x-ms-copy-status-description: <error string>

Версия 2012-02-12 и более поздние. Возникает только тогда, когда параметр x-ms-copy-status имеет значение failed или pending. Описывает причину последнего неустранимого или устранимого сбоя операции копирования. Этот заголовок не выводится, если большой двоичный объект не является целевым в операции Copy Blob либо если большой двоичный объект был изменен после завершения операции Copy Blob с помощью методов Set Blob Properties, Put Blob или Put Block List.

x-ms-copy-id: <id>

Версия 2012-02-12 и более поздние. Строковый идентификатор последней попытки операции Copy Blob, в которой этот большой двоичный объект был целевым. Этот заголовок не выводится, если большой двоичный объект не является целевым в операции Copy Blob либо если большой двоичный объект был изменен после завершения операции Copy Blob с помощью методов Set Blob Properties, Put Blob или Put Block List.

x-ms-copy-progress: <bytes copied/bytes total>

Версия 2012-02-12 и более поздние. Содержит число скопированных байтов и общее число байтов в источнике после последней попытки операции Copy Blob, в которой этот большой двоичный объект был целевым. Может показывать от 0 до Content-Length скопированных байтов. Этот заголовок не выводится, если большой двоичный объект не является целевым в операции Copy Blob либо если большой двоичный объект был изменен после завершения операции Copy Blob с помощью методов Set Blob Properties, Put Blob или Put Block List.

x-ms-copy-source: url

Версия 2012-02-12 и более поздние. URL-адрес длиной до 2 KБ, который указывает исходный большой двоичный объект или файл, использованные в последней попытке операции Copy Blob, в которой большой двоичный объект был целевым. Этот заголовок не выводится, если большой двоичный объект не является целевым в операции Copy Blob либо если большой двоичный объект был изменен после завершения операции Copy Blob с помощью методов Set Blob Properties, Put Blob или Put Block List.

x-ms-copy-status: <pending | success | aborted | failed>

Версия 2012-02-12 и более поздние. Состояние операции копирования, определенной параметром x-ms-copy-id, со следующими значениями:

  • success: копирование завершено успешно.

  • pending: идет копирование. Параметр x-ms-copy-status-description показывает, замедляют ли временные, устранимые ошибки копирование, не вызывая сбоя.

  • aborted: копирование завершено методом Abort Blob Copy.

  • failed: ошибка копирования. См. описание ошибки в параметре x-ms-copy-status-description.

Этот заголовок не выводится, если большой двоичный объект не является целевым в операции Copy Blob либо если большой двоичный объект был изменен после завершения операции Copy Blob с помощью методов Set Blob Properties, Put Blob или Put Block List.

x-ms-lease-duration: <infinite | fixed>

Версия 2012-02-12 и более поздние. Когда большой двоичный объект получил аренду, указывает, какой срок имеет аренда — конечный или бесконечный.

x-ms-lease-state: <available | leased | expired | breaking | broken>

Версия 2012-02-12 и более поздние. Состояние аренды большого двоичного объекта.

x-ms-lease-status:<locked, unlocked>

Текущее состояние аренды большого двоичного объекта.

x-ms-request-id

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

x-ms-version

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

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

Accept-Ranges: bytes

Указывает, что служба поддерживает запросы для частичного содержимого большого двоичного объекта. Включается для запросов, сделанных с помощью версии 2011-08-18 и более поздних версий, и для службы в пакете SDK версии 1.6 или более поздней версии.

Date

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

Access-Control-Allow-Origin

Возвращается, если запрос содержит заголовок Origin и включен CORS с совпадающим правилом. В случае совпадения этот заголовок возвращает значение заголовка источника запроса.

Access-Control-Expose-Headers

Возвращается, если запрос содержит заголовок Origin и включен CORS с совпадающим правилом. Возвращает список заголовков ответа, которые должны быть предоставлены клиенту или отправителю запроса.

Vary

Возвращается со значением заголовка Origin, если заданы правила CORS. Более подробные сведения см. в разделе Поддержка общего доступа к ресурсам независимо от источника (CORS) для служб хранилища Azure.

Access-Control-Allow-Credentials

Возвращается, если запрос содержит заголовок Origin и включен CORS с совпадающим правилом, которое не допускает использования всех источников. Этот заголовок будет установлен в значение true.

Текст ответа содержит большой двоичный объект.

Status Response:
HTTP/1.1 200 OK

Response Headers:
x-ms-blob-type: BlockBlob
x-ms-lease-status: unlocked
x-ms-lease-state: available
x-ms-meta-m1: v1
x-ms-meta-m2: v2
Content-Length: 11
Content-Type: text/plain; charset=UTF-8
Date: Wed, 23 Oct 2013 22:49:18 GMT
ETag: "0x8CB171DBEAD6A6B"
Vary: Origin
Last-Modified: Wed, 23 Oct 2013 22:48:29 GMT
x-ms-version: 2013-08-15
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

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

Для страничного большого двоичного объекта операция Get Blob для диапазона страниц, которые еще не имеют содержимого или были очищены, возвращает нуль.

При вызове метода Get Blob для страничного большого двоичного объекта без указания диапазона служба возвращает диапазон страниц не более значения, указанного в заголовке x-ms-blob-content-length. Для всех страниц без содержимого служба возвращает нуль.

Операция Get Blob должна завершиться за 2 минуты на 1 МБ. Если операция длится в среднем дольше 2 минут на 1 МБ, то истечет время ожидания.

Заголовок x-ms-version необходим для получения большого двоичного объекта, принадлежащего частному контейнеру. Если большой двоичный объект принадлежит контейнеру, который доступен для полного или частичного открытого доступа, то любой клиент может прочитать его без указания версии. Версия службы не требуется для получения большого двоичного объекта, принадлежащего открытому контейнеру. Дополнительные сведения см. в разделе Ограничение доступа к контейнерам и большим двоичным объектам.

Операции копирования

Чтобы определить, успешно ли завершилась операция Copy Blob, сначала убедитесь, что значение заголовка x-ms-copy-id целевого большого двоичного объекта совпадает с идентификатором копирования, полученным при вызове метода Copy Blob. Соответствие гарантирует, что другое приложение не вызвало операцию отмены копирования и не начало новую операцию Copy Blob. Затем проверьте заголовок x-ms-copy-status: success. Однако следует иметь в виду, что все операции записи в большой двоичный объект, за исключением операций Lease, Put Page и Put Block, удаляют свойства x-ms-copy-* из большого двоичного объекта. Эти свойства также не копируются операциями Copy Blob, которые используют версии до 2012-02-12.

Когда параметр x-ms-copy-status: failed выводится в ответе, x-ms-copy-status-description содержит дополнительные сведения об ошибке Copy Blob.

В следующей таблице описаны три поля каждого значения x-ms-copy-status-description.

 

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

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

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

Код ошибки

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

Сведения

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

В следующей таблице описаны значения x-ms-copy-status и x-ms-copy-status-description распространенных ошибок.

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

 

Сценарий Значение x-ms-copy-status Значение x-ms-copy-status-description

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

успешно

пусто

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

aborted

пусто

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

ожидание

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

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

ожидание

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

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

ошибка

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

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

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

ошибка

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

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

ошибка

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

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