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

Вставка блокировки

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

Операция Put Block создает новую блокировку, которую следует зафиксировать в составе большого двоичного объекта.

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

 

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

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id

HTTP/1.1

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

 

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

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id

HTTP/1.1

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

 

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

blockid

Обязательно. Допустимая строка в кодировке Base64, идентифицирующая блокировку. До кодирования длина строки не должна превышать 64 байта.

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

Обратите внимание, что строка Base64 должна был закодирована как URL-адрес.

timeout

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

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

 

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

Authorization

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

Date или x-ms-date

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

x-ms-version

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

Content-Length

Обязательно. Длина содержимого блокировки в байтах. Блокировка не должна быть больше 4 МБ.

Если длина не указана, операция завершается ошибкой с кодом состояния 411 (требуется длина).

Content-MD5

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

Учтите, что этот хэш MD5 не сохраняется в большом двоичном объекте.

Если хэш не совпадает, операция завершится с ошибкой и кодом ошибки 400 (неправильный запрос).

x-ms-lease-id:<ID>

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

x-ms-client-request-id

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

Текст запроса содержит содержимое блокировки.

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=AAAAAA%3D%3D HTTP/1.1

Request Headers:
x-ms-version: 2011-08-18
x-ms-date: Sun, 25 Sep 2011 14:37:35 GMT
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=
Content-Length: 1048576

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

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

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

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

 

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

Content-MD5

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

x-ms-request-id

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

x-ms-version

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

Date

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

Response Status:
HTTP/1.1 201 Created

Response Headers:
Transfer-Encoding: chunked
Content-MD5: BN3lsXf+t19nMGs+vYakPA==
Date: Sun, 25 Sep 2011 23:47:09 GMT
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

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

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

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

Если вызвать Put Block для еще не существующего большого двоичного объекта, создается новый объект с длиной содержимого 0. Этот объект перечисляется операцией List Blobs, если указан параметр include=uncommittedblobs. Переданные блокировки не фиксируются до вызова операции Put Block List для нового большого двоичного объекта. Большой двоичный объект, созданный таким образом, сохраняется на сервере в течение недели. Если в течение этого времени в него не будут добавлены или в нем не будут зафиксированы дополнительные блокировки, то объект удаляется в процессе уборки мусора.

В настоящее время операция Put Block List поддерживает большие двоичные объекты размером до 200 ГБ и до 50 000 блокировок. В любой момент времени большой двоичный объект может содержать не более 100 000 незафиксированных блокировок, при этом общий размер набора незафиксированных блокировок не должен превышать 400 ГБ. При превышении этих ограничений служба возвращает код состояния 413 (RequestEntityTooLarge).

Блокировка, успешно переданная с помощью операции Put Block, не входит в состав большого двоичного объекта, пока он не будет зафиксирован операцией Put Block List. До вызова Put Block List для фиксации нового или обновленного большого двоичного объекта все вызовы Получение большого двоичного объекта возвращают содержимое большого двоичного объекта без учета незафиксированной блокировки.

При передаче блокировки с таким же идентификатором блокировки, что и у другой еще не зафиксированной блокировки, при следующей успешной операции Put Block List будет зафиксирована блокировка с этим идентификатором, который был передан последней.

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

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

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

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

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

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

Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв
Корпорация Майкрософт проводит интернет-опрос, чтобы выяснить ваше мнение о веб-сайте MSDN. Если вы желаете принять участие в этом интернет-опросе, он будет отображен при закрытии веб-сайта MSDN.

Вы хотите принять участие?
Показ:
© 2014 Microsoft