Экспорт (0) Печать
Развернуть все

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

Обновлено: Январь 2014 г.

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

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

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

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

 

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

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

HTTP/1.1

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

 

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

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

HTTP/1.1

Обратите внимание, что эмулятор хранилища поддерживает размер больших двоичных объектов до 2 ГБ.

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

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

 

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

timeout

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

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

 

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

Authorization

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

Date или x-ms-date

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

x-ms-version

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

Content-Length

Обязательно. Длина запроса.

Для страничного большого двоичного объекта следует задать нулевое значение этого заголовка, поскольку Вставка большого двоичного объекта используется только для инициализации страничного большого двоичного объекта. Размер страничного большого двоичного объекта указан в заголовке x-ms-blob-content-length. Все содержимое следует записывать в страничный большой двоичный объект вызовом Вставка страницы.

Content-Type

Необязательно. MIME-тип содержимого BLOB-объекта. Тип по умолчанию — application/octet-stream.

Content-Encoding

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

Content-Language

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

Content-MD5

Необязательно. Хэш MD5 содержимого большого двоичного объекта. Этот хэш используется для проверки целостности большого двоичного объекта в ходе транспортировки. Если этот заголовок указан, то служба хранилища проверяет хэш, который поступил с отправленным заголовком. Если хэш не совпадает, операция завершится с ошибкой и кодом ошибки 400 (неправильный запрос).

Если пропустить его в версии 2012-02-12 и более поздних, служба BLOB-объектов создает хэш MD5.

Результаты Получение большого двоичного объекта, Получение свойств больших двоичных объектов и Перечисление больших двоичных объектов включают хэш MD5.

Cache-Control

Необязательно. Служба BLOB-объектов сохраняет это значение, но не использует и не изменяет его.

x-ms-blob-content-type

Необязательно. Задайте тип содержимого большого двоичного объекта.

x-ms-blob-content-encoding

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

x-ms-blob-content-language

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

x-ms-blob-content-md5

Необязательно. Задайте хэш MD5 большого двоичного объекта.

x-ms-blob-cache-control

Необязательно. Задает управление кэшем большого двоичного объекта.

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

Обязательно. Задает тип создаваемого большого двоичного объекта: блочный или страничный.

x-ms-meta-name:value

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

Обратите внимание: начиная с версии 2009-09-19, имена метаданных должны соответствовать правилам именования для идентификаторов C#.

x-ms-lease-id:<ID>

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

x-ms-blob-content-disposition

Необязательно. Задает заголовок Content-Disposition большого двоичного объекта. Доступно в версии 2013-08-15 и выше.

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

Ответ от операций Получение большого двоичного объекта и Получение свойств больших двоичных объектов содержит заголовок content-disposition.

Origin

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

x-ms-client-request-id

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

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

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

 

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

x-ms-blob-content-length: bytes

Требуется для страничных больших двоичных объектов. Этот заголовок указывает максимальный размер для страничного большого двоичного объекта — до 1 ТБ. Размер страничного большого двоичного объекта необходимо выравнивать по границе в 512 байт.

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

x-ms-blob-sequence-number: <num>

Необязательно. Задается только для страничных больших двоичных объектов. Порядковый номер — это значение, управляемое пользователем, которое можно использовать для отслеживания запросов. Значение порядкового номера должно находиться в пределах от 0 до 2^63 - 1. Значение по умолчанию — 0.

У блочного большого двоичного объекта текст запроса должен включать в себя его содержимое.

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

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

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblockblob HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Wed, 23 Oct 2013 22:33:355 GMT
Content-Type: text/plain; charset=UTF-8
x-ms-blob-content-disposition: attachment; filename="fname.ext"
x-ms-blob-type: BlockBlob
x-ms-meta-m1: v1
x-ms-meta-m2: v2
Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=
Content-Length: 11

Request Body:
hello world

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

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/mypageblob HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Wed, 23 Oct 2013 22:41:55 GMT
Content-Type: text/plain; charset=UTF-8
x-ms-blob-type: PageBlob
x-ms-blob-content-length: 1024
x-ms-blob-sequence-number: 0
Authorization: SharedKey 
Origin: http://contoso.com
Vary: Origin
myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=
Content-Length: 0

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

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

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

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

 

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

ETag

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

Last-Modified

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

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

Content-MD5

Этот заголовок возвращается для блочного большого двоичного объекта, чтобы клиент мог проверить целостность содержимого сообщения. Возвращаемое значение Content-MD5 вычисляется службой BLOB-объектов. В версии 2012-02-12 и более поздних этот заголовок возвращается, даже если запрос не содержит заголовков Content-MD5 или x-ms-blob-content-md5.

x-ms-request-id

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

x-ms-version

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

Date

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

Access-Control-Allow-Origin

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

Access-Control-Expose-Headers

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

Access-Control-Allow-Credentials

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

Response Status:
HTTP/1.1 201 Created

Response Headers:
Transfer-Encoding: chunked
Content-MD5: sQqNsWTgdUEFt6mb5y4/5Q==
Date: Wed, 23 Oct 2013 22:33:35 GMT
ETag: "0x8CB171BA9E94B0B"
Last-Modified: Wed, 23 Oct 2013 22:30:15 GMT
Access-Control-Allow-Origin: http://contoso.com
Access-Control-Expose-Headers: Content-MD5
Access-Control-Allow-Credentials: True
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

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

При создании большого двоичного объекта необходимо указать тип: блочный или страничный. Когда большой двоичный объект создан, его тип изменить нельзя иначе как удалив и повторно создав этот объект.

Чтобы создать новый страничный большой двоичный объект, сначала инициализируйте его, вызвав Put Blob, и укажите максимальный размер, до 1 ТБ. При создании страничного большого двоичного объекта не включайте содержимое в текст запроса. Когда большой двоичный объект создан, вызовите Вставка страницы, чтобы добавить к объекту содержимое или изменить его.

Максимальный передаваемый размер блочного большого двоичного объекта составляет 64 МБ. Если размер большого двоичного объекта превышает 64 МБ, то необходимо загружать его как набор блокировок. Дополнительные сведения см. в разделах по операциям Вставка блокировки и Вставка списка блокировок. Нет необходимости вызывать Put Blob, если большой двоичный объект загружается как набор блокировок.

При попытке загрузить блочный большой двоичный объект более 64 МБ или страничный большой двоичный объект более 1 ТБ служба возвращает код состояния 413 (слишком большая сущность запроса). Кроме того, служба BLOB-объектов также вернет в ответе дополнительные сведения об ошибке, в том числе максимально допустимый размер большого двоичного объекта в байтах.

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

Большой двоичный объект имеет пользовательские свойства (задаваемые через заголовки), позволяющие сохранять значения, связанные со стандартными заголовками HTTP. Затем эти значения могут быть прочитаны путем вызова Получение свойств больших двоичных объектов или изменены путем вызова Задание свойств больших двоичных объектов. Заголовки пользовательских свойств и соответствующий стандартный заголовок HTTP перечислены в следующей таблице.

 

Заголовок HTTP Пользовательский заголовок свойства большого двоичного объекта

Content-Type

x-ms-blob-content-type

Content-Encoding

x-ms-blob-content-encoding

Content-Language

x-ms-blob-content-language

Content-MD5

x-ms-blob-content-md5

Cache-Control

x-ms-blob-cache-control

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

  • Если клиент указал заголовок пользовательского свойства, как показывает префикс x-ms-blob, это значение сохраняется в большом двоичном объекте.

  • Если клиент указал стандартный заголовок HTTP, а не пользовательский заголовок свойств, то значение сохраняется в соответствующем пользовательском свойстве в большом двоичном объекте и возвращается путем вызова Get Blob Properties. Например, если клиент задал для запроса заголовок Content-Type, то значение сохраняется в свойстве большого двоичного объекта x-ms-blob-content-type.

  • Если клиент задал и стандартный заголовок HTTP, и соответствующий заголовок свойства в одном запросе, запрос PUT использует значение из стандартного заголовка HTTP, но сохраняется в большом двоичном объекте и возвращается по последующим запросам GET значение, указанное для заголовка пользовательского свойства.

Если большой двоичный объект имеет активную аренду, то клиент должен указать в запросе идентификатор аренды для перезаписи большого двоичного объекта. Если клиент не указывает идентификатор аренды или указывает недопустимый идентификатор аренды, то служба BLOB-объектов возвращает код состояния 412 (не выполнено необходимое условие). Если клиент указывает идентификатор аренды, но большой двоичный объект не имеет активной аренды, то служба BLOB-объектов также возвращает код состояния 412 (не выполнено необходимое условие). Если клиент указывает идентификатор аренды для большого двоичного объекта, который еще не существует, служба BLOB-объектов возвратит код состояния 412 (необходимое условие не выполнено) для запросов, сделанных к 2013-08-15 и последующей версии. Для предыдущих же версий службы BLOB-объектов возвращается код состояния 201 (создано).

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

Для завершения операции Put Blob разрешено ожидание 10 минут на МБ. Если операция занимает в среднем дольше 10 минут на МБ, ее время ожидания истекает.

Показ:
© 2014 Microsoft