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

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

Опубликовано: Август 2011 г.

Обновлено: Апрель 2015 г.

Операция Snapshot Blob создает доступный только для чтения моментальный снимок BLOB-объекта.

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

 

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

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=snapshot

HTTP/1.1

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

 

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

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=snapshot

HTTP/1.1

Дополнительные сведения см. в Using the Azure Storage Emulator for Development and Testing.

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

 

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

timeout

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

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

 

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

Authorization

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

Date или x-ms-date

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

x-ms-version

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

x-ms-meta-name:value

Необязательно. Задает определяемую пользователем пару «имя-значение», связанную с BLOB-объектом. Если ни одна пара «имя-значение» не указана, операция скопирует в моментальный снимок метаданные базового BLOB-объекта. Если заданы одна или несколько пар «имя-значение», моментальный снимок создается с указанными метаданными, а метаданные из базового BLOB-объекта не копируются.

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

If-Modified-Since

Необязательно. Значение DateTime. Укажите этот условный заголовок, чтобы создать моментальный снимок BLOB-объекта только в том случае, если он был изменен после указанной даты-времени. Если базовый объект не был изменен, служба BLOB-объектов возвращает код состояния 412 (необходимое условие не выполнено).

If-Unmodified-Since

Необязательно. Значение DateTime. Укажите этот условный заголовок, чтобы создать моментальный снимок BLOB-объекта только в том случае, если он не был изменен с указанной даты и времени. Если базовый объект был изменен, служба BLOB-объектов возвращает код состояния 412 (необходимое условие не выполнено).

If-Match

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

If-None-Match

Необязательно. Значение ETag.

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

x-ms-lease-id:<ID>

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

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

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

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

x-ms-client-request-id

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

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

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

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

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

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

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

 

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

x-ms-snapshot: <DateTime>

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

ETag

Значение ETag моментального снимка. Если версия запроса 2011-08-18 или более поздняя, то значение ETag будет указано в кавычках. Обратите внимание, что в моментальный снимок нельзя записывать данные, поэтому ETag данного моментального снимка никогда не изменится. Однако значение ETag моментального снимка будет отличаться от значения базового BLOB-объекта, если с запросом Snaphot Blob были присланы новые метаданные. Если в запросе не были указаны метаданные, то ETag моментального снимка будет совпадать с ETag базового BLOB-объекта на момент создания моментального снимка.

Last-Modified

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

Обратите внимание, что в моментальный снимок нельзя записывать данные, поэтому время последнего изменения данного моментального снимка будет оставаться постоянным. Однако время последнего изменения моментального снимка будет отличаться от того же времени базового BLOB-объекта, если с запросом Snaphot Blob были присланы новые метаданные. Если в запросе не были указаны метаданные, то время последнего изменения моментального снимка будет совпадать с тем же временем базового большого двоичного объекта на момент создания моментального снимка.

x-ms-request-id

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

x-ms-version

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

Date

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

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

Вызов этой операции доступен только владельцу учетной записи.

Моментальные снимки — это версии BLOB-объектов, предназначенные только для чтения. После создания моментального снимка его можно читать, копировать и удалять, но не изменять.

Моментальный снимок предоставляет удобный способ создания резервной копии большого двоичного объекта. Моментальный снимок можно использовать для восстановления BLOB-объекта до предыдущей версии. Для этого вызывается метод Копирование большого двоичного объекта, который перезаписывает базовый BLOB-объект его моментальным снимком.

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

Значение DateTime идентифицирует моментальный снимок в URI. Например, базовый BLOB-объект и его моментальные снимки имеют URI следующего вида:

  • Базовый BLOB: http://myaccount.blob.core.windows.net/mycontainer/myblob

  • Моментальный снимок: http://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

Обратите внимание, что при каждом вызове операции Snapshot Blob создается новый моментальный снимок с уникальным значением типа DateTime. BLOB-объект может иметь любое число моментальных снимков. Существующие моментальные снимки никогда не перезаписываются, но их необходимо явно удалять, вызывая Удаление больших двоичных объектов и устанавливая в заголовке x-ms-include-snapshots соответствующее значение.

Чтение, копирование и удаление моментальных снимков

Успешный вызов Snapshot Blob возвращает значение DateTime в заголовке ответа x-ms-snapshot. Это значение DateTime затем можно использовать для считывания, удаления или копирования определенной версии моментального снимка. Любая операция службы BLOB-объектов, допустимая для моментального снимка, может быть вызвана путем указания ?snapshot=<DateTime> после имени BLOB-объекта.

Копирование свойств и метаданных BLOB-объекта

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

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • x-ms-blob-sequence-number (for page blobs only)

  • x-ms-copy-id (2012-02-12 и более поздние версии)

  • x-ms-copy-status (2012-02-12 и более поздние версии)

  • x-ms-copy-source (2012-02-12 и более поздние версии)

  • x-ms-copy-progress (2012-02-12 и более поздние версии)

  • x-ms-copy-completion-time (2012-02-12 и более поздние версии)

  • x-ms-copy-status-description (2012-02-12 и более поздние версии)

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

Моментальный снимок объекта всегда имеет тот же размер, что и базовый BLOB-объект на время создания моментального снимка, поэтому значение заголовка Content-Length для моментального снимка объекта будет совпадать со значением для базового объекта.

Можно задать одно или несколько новых значений метаданных для моментального снимка, указав в запросе заголовок x-ms-meta-name:value. Если этот заголовок не указан, то метаданные, связанные с базовым BLOB-объектом, копируются в моментальный снимок.

Указание условных заголовков

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

Создание моментального снимка арендованного BLOB-объекта

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

  • Указан условный заголовок x-ms-lease-id и в запрос включен идентификатор активной аренды базового BLOB-объекта. Это условие означает, что моментальный снимок создается только в том случае, если аренда активна и указанный идентификатор аренды совпадает с тем, что связан с BLOB-объектом.

  • Заголовок x-ms-lease-id не указан, в этом случае аренда для монопольной записи не учитывается.

Обратите внимание, что аренда, связанная с базовым BLOB-объектом, не копируется в моментальный снимок. Моментальные снимки нельзя арендовать.

Копирование моментальных снимков

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

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

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

Моментальные снимки в учетных записях хранения Premium

Существует ряд различий между учетными записями хранения Azure Premium и стандартными учетными записями хранения при работе с моментальными снимками.

  • В учетной записи Premium максимальное количество моментальных снимков для каждого BLOB-объекта страницы составляет 100. В случае превышения этого лимита операция Snapshot Blob возвращает код ошибки 409 (SnapshotCountExceeded).

  • Моментальный снимок большого двоичного объекта страницы в учетной записи хранения Premium может создаваться каждые десять минут. В случае превышения этого лимита операция Snapshot Blob возвращает код ошибки 409 (SnaphotOperationRateExceeded).

  • Чтение снимка большого двоичного объекта страницы в учетную запись хранения Premium через Получение большого двоичного объекта не поддерживается. Вызов Get Blob для моментального снимка в учетной записи хранения Premium приводит к возврату кода ошибки 400 (недопустимая операция). Однако поддерживается вызов Получение свойств больших двоичных объектов и Получение метаданных BLOB-объектов для моментального снимка.

    Для считывания моментального снимка можно использовать Копирование большого двоичного объекта, чтобы скопировать моментальный снимок на другой страничный большой двоичный объект в учетной записи. BLOB-объект назначения для операции копирования не должен содержать какие-либо моментальные снимки. Если BLOB-объект назначения имеет моментальные снимки, то Copy Blob возвращает код ошибки 409 (SnapshotsPresent).

Дополнительные сведения о вызове операций REST для ресурсов хранилища Azure Premium см. в разделе Использование операций службы BLOB-объектов с хранилищем Azure Premium.

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