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

Перед Preflight Blob Request отправкой запроса операция запрашивает правила общего доступа к ресурсам независимо от источника (CORS) для Хранилище BLOB-объектов Azure.

Веб-браузер или другой агент пользователя отправляет предварительный запрос, включающий домен источника, метод и заголовки для запроса, который агент хочет выполнить. Если для хранилища BLOB-объектов включена функция CORS, хранилище BLOB-объектов оценивает предварительный запрос на соответствие правилам CORS, настроенным владельцем учетной записи с помощью параметра Set Blob Service Properties . Затем хранилище BLOB-объектов принимает или отклоняет запрос.

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

Запрос

Можно указать Preflight Blob Request следующим образом. Замените <account-name> именем своей учетной записи хранения. Замените <blob-resource> ресурсом контейнера или большого двоичного объекта, который будет целевым объектом запроса.

HTTP-команда Универсальный код ресурса (URI) запроса параметр "Версия HTTP"
OPTIONS http://<account-name>.blob.core.windows.net/<blob-resource> HTTP/1.1

Универсальный код ресурса (URI) всегда должен включать косую черту (/), чтобы отделить имя узла от частей пути и запроса URI. В случае этой операции путь может быть пустым или указывать на любой контейнер или ресурс BLOB-объекта.

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

Параметры универсального кода ресурса (URI)

Нет.

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

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

Заголовок запроса Описание
Origin Обязательный. Указывает источник, из которого будет выдан запрос. Источник проверяется по правилам CORS службы с целью определить, успешен или ошибочен предварительный запрос.
Access-Control-Request-Method Обязательный. Указывает метод (или HTTP-команду) для запроса. Метод проверяется по правилам CORS службы с целью определить, успешен или ошибочен предварительный запрос.
Access-Control-Request-Headers Необязательный элемент. Указывает заголовки запросов, которые будут отправлены. Если он отсутствует, служба предполагает, что запрос не содержит заголовков.

Текст запроса

Нет.

Ответ

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

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

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

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

Заголовки ответов

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

Дополнительные сведения о заголовках предварительных запросов см. в спецификации CORS.

Заголовок ответа Описание
Access-Control-Allow-Origin Указывает разрешенный источник, который соответствует заголовку источника в запросе при успешном выполнении предварительного запроса.
Access-Control-Allow-Methods Если предварительный запрос завершается успешно, для этого заголовка задается значение или значения, указанные для заголовка Access-Control-Request-Methodзапроса .
Access-Control-Allow-Headers Если предварительный запрос завершается успешно, для этого заголовка задается значение или значения, указанные для заголовка Access-Control-Request-Headersзапроса .
Access-Control-Max-Age Указывает период времени, в течение времени, когда агенту пользователя разрешено кэшировать предварительный запрос для будущих запросов.
Access-Control-Allow-Credentials Указывает, можно ли выполнить запрос с помощью учетных данных. Этот заголовок всегда имеет значение true.

Текст ответа

Нет.

Авторизация

Операция Preflight Blob Request всегда выполняется анонимно. Он не требует авторизации и игнорирует учетные данные, если они предоставлены.

Примечание

Если вы включили аналитику Preflight Blob Request службы хранилища Azure и регистрируете метрики, вызов операции регистрируется как AnonymousSuccess. По этой причине при просмотре метрик в портал Azure вы увидитеAnonymousSuccess, что зарегистрировано для Preflight Blob Request. Эта метрика не указывает на то, что ваши личные данные были скомпрометированы, а только Preflight Blob Request на успешность операции с кодом состояния 200 (ОК).

Пример запроса и ответа

В следующем примере отправляется предварительный запрос для источника www.contoso.com. Для метода запроса задано значение PUT, а заголовки запроса имеют значение content-type и accept.

OPTIONS http://myaccount.blob.core.windows.net/mycontainer/myblockblob  HTTP/1.1  
Accept: */*  
Origin: www.contoso.com  
Access-Control-Request-Method: PUT  
Access-Control-Request-Headers: content-type, accept  
Accept-Encoding: gzip, deflate  
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)  
Content-Length: 0  
  

Ответ указывает, что cors включен для службы и что правило CORS соответствует предварительному запросу:

HTTP/1.1 200 OK  
Connection: Keep-Alive  
Content-Length: 0  
Content-Type: text/html; charset=UTF-8  
Access-Control-Allow-Origin: *  
Access-Control-Max-Age: 60  
Access-Control-Allow-Methods: PUT  
Access-Control-Allow-Headers: accept,content-type  
  

Комментарии

Если cors включена для службы и правило CORS соответствует предварительному запросу, служба отвечает на предварительный запрос с кодом состояния 200 (ОК). Ответ содержит обязательные заголовки Access-Control. В этом случае счет за запрос выставляется.

Если CORS не включен или нет правила CORS, которому соответствует предварительный запрос, то служба отправляет код состояния 403 (Запрещено). В этом случае плата за запрос не взимается.

OPTIONS Если запрос имеет неправильный формат, служба отвечает с кодом состояния 400 (недопустимый запрос), и плата за запрос не взимается. Примером запроса с неправильным форматом является запрос, который не содержит обязательных Origin заголовков и Access-Control-Request-Method .

Предварительный запрос — это механизм для запроса возможности CORS службы хранилища, связанной с определенной учетной записью хранения. Предварительный запрос не нацелен на конкретный ресурс.

Выставление счетов

Запросы на ценообразование могут исходить от клиентов, использующих API хранилища BLOB-объектов, напрямую через REST API хранилища BLOB-объектов или из клиентской библиотеки службы хранилища Azure. Эти запросы начисляют плату за каждую транзакцию. Тип транзакции влияет на способ оплаты учетной записи. Например, транзакции чтения начисляются на категорию выставления счетов, отличную от категории операций записи. В следующей таблице показана категория выставления счетов для Preflight Blob Request запросов на основе типа учетной записи хранения.

Операция Тип учетной записи хранения Категория выставления счетов
Предварительный запрос большого двоичного объекта Блочный BLOB-объект (ценовая категории "Премиум")
Общего назначения версии 2 (цен. категория "Стандартный")
Другие операции
Предварительный запрос большого двоичного объекта Стандартная общего назначения версии 1 Операции чтения

Дополнительные сведения о ценах для указанной категории выставления счетов см. в разделе Цены на Хранилище BLOB-объектов Azure.

См. также раздел

Операции с учетной записью (хранилище BLOB-объектов)
Поддержка CORS для службы хранилища Azure