Примеры SAS службы
В этом разделе приведены образцы использования подписанных URL-адресов с API REST. Подписанные URL-адреса позволяют предоставлять права доступа к контейнерам, большим двоичным объектам, таблицам, очередям или файлам. С помощью подписанного URL-адреса можно предоставить пользователям ограниченный доступ к конкретному диапазону контейнеров, больших двоичных объектов, очередей, таблиц либо сущностей таблиц на указанный период времени. Полные сведения о создании, анализе и использовании подписанных URL-адресов см. в разделе Делегирование доступа с помощью подписанного URL-адреса. Сведения об использовании клиентской библиотеки хранилища .NET для создания подписанных URL-адресов см. в статье Создание и использование подписанного URL-адреса.
Примеры больших двоичных объектов
В этом разделе приведены примеры, демонстрирующие использование подписанных URL-адресов для операций REST с большими двоичными объектами.
Пример. Получение BLOB-объекта с помощью подписанного URL-адреса контейнера
Версии до 15.08.2013
В следующем примере показано, как создать подписанный URL-адрес с целью предоставления к контейнеру доступа только для чтения.
Поля подписи, из которых будет состоять URL-адрес:
signedstart=2009-02-09
signedexpiry=2009-02-10
signedresource=c
signedpermissions=r
signature=dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN/RnbI=
signedidentifier=YWJjZGVmZw==
signedversion=2012-02-12
Подпись составляется следующим образом.
StringToSign = r + \n
2009-02-09 + \n
2009-02-10 + \n
/myaccount/pictures + \n
YWJjZGVmZw== + \n
2012-02-12
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN/RnbI=
URL-адрес запроса указывает разрешения на pictures
чтение контейнера в течение указанного интервала. Ресурс, представленный URL-адресом запроса, является большим двоичным объектом, но подписанный URL-адресом указан в контейнере. Также можно указать ее для самого большого двоичного объекта.
GET https://myaccount.blob.core.windows.net/pictures/profile.jpg?sv=2012-02-12&st=2009-02-09&se=2009-02-10&sr=c&sp=r&si=YWJjZGVmZw%3d%3d&sig=dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN%2fRnbI%3d
HTTP/1.1
Host: myaccount.blob.core.windows.net
x-ms-date: <date>
Версия 2013-08-15 или более поздняя
В следующем примере показано, как создавать подписанные URL-адреса для доступа к контейнеру с разрешением только на чтение с помощью версии 2013-08-15 служб хранилища.
Версия 2013-08-15 предоставляет новые параметры запроса, позволяющие клиентам выдавать запросы с целью переопределения заголовков ответа только для этого подписанного URL-адреса.
Заголовки ответа и соответствующие параметры запроса являются следующими:
Имя заголовка ответа | Соответствующий параметр запроса SAS |
---|---|
Cache-Control |
rscc |
Content-Disposition |
rscd |
Content-Encoding |
rsce |
Content-Language |
rscl |
Content-Type |
rsct |
Поля, которые составляют подписываемую строку для подписи:
signedstart=2013-08-16
signedexpiry=2013-08-17
signedresource=c
signedpermissions=r
signedidentifier=YWJjZGVmZw==
signedversion=2013-08-15
responsecontent-disposition=file; attachment
responsecontent-type=binary
Подписываемая строка строится следующим образом.
StringToSign = r + \n
2013-08-16 + \n
2013-08-17 + \n
/myaccount/pictures + \n
YWJjZGVmZw== + \n
2013-08-15 + \n
+ \n
file; attachment + \n
+ \n
+ \n
binary
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = a39+YozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ=
Подписанный URL-адрес задает разрешения на чтение для контейнера изображений на указанный интервал. Ресурс, представленный URL-адресом запроса, является большим двоичным объектом, но подписанный URL-адресом указан в контейнере. Также можно указать ее для самого большого двоичного объекта.
GET https://myaccount.blob.core.windows.net/pictures/profile.jpg?sv=2013-08-15&st=2013-08-16&se=2013-08-17&sr=c&sp=r&rscd=file;%20attachment&rsct=binary &sig=YWJjZGVmZw%3d%3d&sig=a39%2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d HTTP/1.1
Для клиента, выполняющего запрос с этой подписью, операция получения BLOB-объекта будет выполнена при соблюдении следующих условий:
Запрос успешно авторизован.
Запрос сделан в период времени, который задан подписанным URL-адресом.
Запрос не нарушает условия соответствующей политики доступа.
Большой двоичный объект, указанный в запросе (/myaccount/pictures/profile.jpg), хранится в контейнере, который задан, как подписанный ресурс (/myaccount/pictures).
Указание rsct=binary
и rscd=file; attachment
для подписанного URL-адреса переопределяет заголовки content-type и content-disposition в ответе соответственно.
Успешный ответ на запрос, созданный с использованием этого подписанного URL-адреса, будет иметь примерно такой вид:
Status Response:
HTTP/1.1 200 OK
Response Headers:
x-ms-blob-type: BlockBlob
Content-Length: 11
Content-Type: binary
Content-Disposition: file; attachment
ETag: "0x8CB171DBEAD6A6B"
x-ms-version: 2013-08-15
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
Пример. Отправка BLOB-объекта с помощью подписанного URL-адреса контейнера
В следующем примере показано, как создавать подписанный URL-адрес для записи большого двоичного объекта. В этом примере мы создаем подпись, которая предоставляет разрешения на запись для всех больших двоичных объектов в контейнере. Затем мы используем этот подписанный URL-адрес для записи в находящийся в контейнере большой двоичный объект.
Подписанные поля, которые будут содержать URL-адрес, включают:
signedstart=2015-07-01T08:49Z
signedexpiry=2015-07-02T08:49Z
signedresource=c
signedpermissions=w
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21
Подпись составляется следующим образом.
StringToSign = w + \n
2015-07-01T08:49Z + \n
2015-07-02T08:49Z + \n
/myaccount/pictures + \n
YWJjZGVmZw== + \n
2013-08-15
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = Rcp6gQRfV7WDlURdVTqCa+qEArnfJxDgE+KH3TCChIs=
URL-адрес запроса указывает разрешения на запись в контейнере pictures
в течение указанного интервала. Ресурс, представленный URL-адресом запроса, является большим двоичным объектом, но подписанный URL-адресом указан в контейнере. Также можно указать ее для самого большого двоичного объекта.
PUT https://myaccount.blob.core.windows.net/pictures/photo.jpg?sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&
sr=c&sp=w&si=YWJjZGVmZw%3d%3d&sig=Rcp6gQRfV7WDlURdVTqCa%2bqEArnfJxDgE%2bKH3TCChIs%3d HTTP/1.1
Host: myaccount.blob.core.windows.net
Content-Length: 12
Hello World.
При использовании этой сигнатуры метод Put BLOB-объекта будет вызываться при соблюдении следующих условий:
Запрос успешно авторизован.
Запрос сделан в период времени, который задан подписанным URL-адресом.
Запрос не нарушает условия соответствующей политики доступа.
Указанный запросом большой двоичный объект (/myaccount/pictures/фотографий.jpg) находится в контейнере, указанном в качестве подписанного ресурса (/myaccount/pictures).
Пример. Удаление BLOB-объекта с помощью подписанного URL-адреса BLOB-объекта
В следующем примере показано, как создать подписанный URL-адрес для предоставления разрешений на удаление для большого двоичного объекта и удалить большой двоичный объект.
Внимание!
Обратите внимание, что подписанный URL-адрес для операции DELETE следует распространять продуманно, поскольку предоставление клиенту разрешения удалять данные может иметь непредвиденные последствия.
Поля подписи, из которых будет состоять URL-адрес:
signedstart=2015-07-01T08:49:37.0000000Z
signedexpiry=2015-07-02T08:49:37.0000000Z
signedresource=b
signedpermissions=d
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21
Подпись составляется следующим образом.
StringToSign = d + \n
2015-07-01T08:49:37.0000000Z + \n
2015-07-02T08:49:37.0000000Z + \n
blob/myaccount/pictures/profile.jpg + \n
YWJjZGVmZw==
2015-02-21
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=
URL-адрес запроса задает разрешения на удаление для контейнера изображений на указанный интервал. Ресурс, представленный URL-адресом запроса, является большим двоичным объектом, и для этого большого двоичного объекта указывается подписанный URL-адрес. Ее также можно указать для контейнера большого двоичного объекта. В этом случае будет предоставлено разрешение на удаление любого большого двоичного объекта из этого контейнера.
DELETE https://myaccount.blob.core.windows.net/pictures/profile.jpg?sv=2015-02-21&st=2015-07-01T08%3a49%3a37.0000000Z&se=2015-07-02T08%3a49%3a37.0000000Z&sr=b&sp=d&si=YWJjZGVmZw%3d%3d&sig=%2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d HTTP/1.1
Host: myaccount.blob.core.windows.net
Content-Length: 0
С помощью этой сигнатуры метод Delete BLOB-объект будет вызываться при соблюдении следующих условий:
Запрос успешно авторизован.
Запрос сделан в период времени, который задан подписанным URL-адресом.
Запрос не нарушает условия соответствующей политики доступа.
Указанный запросом большой двоичный объект (/myaccount/pictures/profile.jpg) соответствует большому двоичному объекту, заданному в качестве подписанного ресурса.
Примеры файлов
В этом разделе приведены примеры, демонстрирующие подписанные URL-адреса для операций REST с файлами.
Пример. Получение файла с помощью подписанного URL-адреса общей папки
В следующем примере показано, как создать подписанный URL-адрес для доступа на чтение в общей папке.
Несколько параметров запроса позволяют клиенту, выдающем запрос, переопределять заголовки ответов для этой подписанной URL-адреса.
Заголовки ответа и соответствующие параметры запроса являются следующими:
Имя заголовка ответа | Соответствующий параметр запроса SAS |
---|---|
Cache-Control |
rscc |
Content-Disposition |
rscd |
Content-Encoding |
rsce |
Content-Language |
rscl |
Content-Type |
rsct |
Поля, которые составляют подписываемую строку для подписи:
signedstart=2015-07-01T08:49Z
signedexpiry=2015-07-02T08:49Z
signedresource=c
signedpermissions=r
signature=dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN/RnbI=
signedidentifier=YWJjZGVmZw==
signedversion=2015—02-21
responsecontent-disposition=file; attachment
responsecontent-type=binary
Подписываемая строка строится следующим образом.
StringToSign = r + \n
2015-07-01T08:49Z + \n
2015-07-02T08:49Z + \n
file/myaccount/pictures + \n
YWJjZGVmZw== + \n
2015—02-21 + \n
+ \n
file; attachment + \n
+ \n
+ \n
binary
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = a39+YozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ=
Подписанный URL-адрес указывает разрешения на чтение в общей папке pictures
в течение указанного интервала. Ресурс, представленный URL-адресом запроса, является файлом, но в общей папке указывается подписанный URL-адрес. Его также можно указать в самом файле.
GET https://myaccount.file.core.windows.net/pictures/profile.jpg?sv=2015-02-21&st=2015-07-01T08:49Z&se=2015-07-02T08:49Z&sr=c&sp=r&rscd=file;%20attachment&rsct=binary&sig=YWJjZGVmZw%3d%3d&sig=a39%2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d
Для клиента, выполняющего запрос с этой подписью, операция получения файла будет выполнена при соблюдении следующих условий:
Запрос успешно авторизован.
Запрос сделан в период времени, который задан подписанным URL-адресом.
Запрос не нарушает условия соответствующей политики доступа.
Файл, указанный запросом (/myaccount/pictures/profile.jpg), находится в общей папке, указанной в качестве подписанного ресурса (/myaccount/pictures).
Указание rsct=binary
и rscd=file; attachment
для подписанного URL-адреса переопределяет заголовки content-type
и content-disposition
в ответе соответственно.
Успешный ответ на запрос, созданный с использованием этого подписанного URL-адреса, будет иметь примерно такой вид:
Status Response:
HTTP/1.1 200 OK
Response Headers:
Content-Length: 11
Content-Type: binary
Content-Disposition: file; attachment
ETag: "0x8CB171DBEAD6A6B"
x-ms-version: 2015-02-21
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
Пример. Отправка файла с помощью подписанного URL-адреса в общей папке
В следующем примере показано, как создать подписанный URL-адрес для записи файла. В этом примере мы создадим сигнатуру, которая предоставляет разрешения на запись для всех файлов в общей папке. Затем мы используем подписанный URL-адрес для записи в файл в общей папке.
Поля подписи, из которых будет состоять URL-адрес:
signedstart=2015-07-01T08:49Z
signedexpiry=2015-07-02T08:49Z
signedresource=c
signedpermissions=w
signature=Rcp6gQRfV7WDlURdVTqCa+qEArnfJxDgE+KH3TCChIs=
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21
Подпись составляется следующим образом.
StringToSign = w + \n
2015-07-01T08:49Z + \n
2015-07-02T08:49Z + \n
file/myaccount/pictures + \n
YWJjZGVmZw== + \n
2015-02-21
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = Rcp6gQRfV7WDlURdVTqCa+qEArnfJxDgE+KH3TCChIs=
URL-адрес запроса указывает разрешения на запись в контейнере pictures
в течение указанного интервала. Ресурс, представленный URL-адресом запроса, является большим двоичным объектом, но подписанный URL-адресом указан в контейнере. Также можно указать ее для самого большого двоичного объекта.
PUT https://myaccount.file.core.windows.net/pictures/photo.jpg?sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-01T08%3a49Z&
sr=c&sp=w&si=YWJjZGVmZw%3d%3d&sig=Rcp6gQRfV7WDlURdVTqCa%2bqEArnfJxDgE%2bKH3TCChIs%3d HTTP/1.1
Host: myaccount.blob.core.windows.net
Content-Length: 12
Hello World.
С помощью этой сигнатуры будет вызываться create file , если выполняются следующие условия:
Запрос успешно авторизован.
Запрос сделан в период времени, который задан подписанным URL-адресом.
Запрос не нарушает условия соответствующей политики доступа.
Файл, указанный в запросе (/myaccount/pictures/photo.jpg), находится в общей папке, указанной в качестве подписанного ресурса (/myaccount/pictures).
Пример. Удаление файла с помощью подписанного URL-адреса
В следующем примере показано, как создать подписанный URL-адрес, который предоставляет разрешения на удаление файла, а затем использует подписанный URL-адрес для удаления файла.
Внимание!
Подписанный URL-адрес для операции DELETE должен распространяться разумно, так как разрешение клиенту удалять данные может иметь непредвиденные последствия.
Поля подписи, из которых будет состоять URL-адрес:
signedstart=2015-07-01T08:49:37.0000000Z
signedexpiry=2015-07-02T08:49:37.0000000Z
signedresource=b
signedpermissions=d
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21
Подпись составляется следующим образом.
StringToSign = d + \n
2015-07-01T08:49:37.0000000Z + \n
2015-07-02T08:49:37.0000000Z + \n
file/myaccount/pictures/profile.jpg + \n
YWJjZGVmZw==
2015-02-21
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=
URL-адрес запроса указывает разрешения на удаление в общей папке изображений в течение указанного интервала. Ресурс, представленный URL-адресом запроса, является файлом, и в этом файле указывается подписанный URL-адрес. Кроме того, можно указать его в общей папке, чтобы предоставить разрешение на удаление любого файла в общей папке.
DELETE https://myaccount.file.core.windows.net/pictures/profile.jpg?sv=2015-02-21&st=2015-07-01T08%3a49%3a37.0000000Z&se=2015-07-02T08%3a49%3a37.0000000Z&sr=b&sp=d&si=YWJjZGVmZw%3d%3d&sig=%2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d HTTP/1.1
Host: myaccount.blob.core.windows.net
Content-Length: 0
С помощью этой сигнатуры метод Delete File будет вызываться при соблюдении следующих условий:
Запрос успешно авторизован.
Запрос сделан в период времени, который задан подписанным URL-адресом.
Запрос не нарушает условия соответствующей политики доступа.
Файл, указанный запросом (/myaccount/pictures/profile.jpg), соответствует файлу, указанному в качестве подписанного ресурса.
Примеры очереди
В этом разделе приведены примеры, демонстрирующие использование подписанных URL-адресов для операций REST с очередями. В следующих примерах операция службы очередей выполняется только после выполнения следующих условий.
Запрос успешно авторизован.
Запрос сделан в период времени, который задан подписанным URL-адресом.
Запрос не нарушает условия соответствующей политики доступа.
Очередью, указанной запросом, является та же очередь, доступ к которой разрешен подписанным URL-адресом.
Пример. Получение сообщений с помощью подписанного URL-адреса
В следующем примере показано, как создавать подписанный URL-адрес для получения сообщений из очереди. Эта подпись предоставляет разрешения на обработку сообщений для очереди. И наконец, в этом примере с помощью подписанного URL-адреса производится получение сообщения из очереди.
Изучите следующие подписанные поля подписи, построение строки в знак и создание URL-адреса, который вызывает операцию Получения сообщений после авторизации запроса:
signedstart=2015-07-01T08:49Z
signedexpiry=2015-07-02T08:49Z
signedpermissions=p
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21
StringToSign = p + \n
2015-07-01T08:49Z + \n
2015-07-02T08:49Z + \n
queue/myaccount/myqueue + \n
YWJjZGVmZw== + \n
2015-02-21
GET https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=120&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=p&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1
Host: myaccount.queue.core.windows.net
Пример. Добавление сообщения с помощью подписанного URL-адреса
В следующем примере показано, как создавать подписанный URL-адрес для добавления сообщений в очередь. Эта подпись предоставляет разрешения на добавление для очереди. И наконец, в этом примере с помощью подписи выполняется добавление сообщения.
Изучите следующие поля подписи, конструкцию строки StringToSign и создание URL-адреса, который вызывает операцию Put Message после авторизации запроса:
signedstart=2015-07-01T08:49Z
signedexpiry=2015-07-02T08:49Z
signedpermissions=a
signature= +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21
StringToSign = a + \n
2015-07-01T08:49Z + \n
2015-07-02T08:49Z + \n
queue/myaccount/myqueue + \n
YWJjZGVmZw== + \n
2015-02-21
POST https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=120&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=a&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1
Host: myaccount.queue.core.windows.net
Content-Length: 100
<QueueMessage>
<MessageText>PHNhbXBsZT5zYW1wbGUgbWVzc2FnZTwvc2FtcGxlPg==</MessageText>
</QueueMessage>
Пример. Просмотр сообщений и получение сообщения с помощью подписанного URL-адреса
В следующем примере показано, как создавать подписанный URL-адрес для выбора следующего сообщения из очереди и получения количества сообщений в очереди. Эта подпись предоставляет разрешения на чтение для очереди. И наконец, в этом примере с помощью подписанного URL-адреса производится выбор сообщения и чтение метаданных очередей, в которых указано число сообщений.
Изучите следующие поля подписи, построение строки в знак и создание URL-адреса, который вызывает операции "Показать сообщения" и "Получить метаданные очереди ":
signedstart=2015-07-01T08:49Z
signedexpiry=2015-07-02T08:49Z
signedpermissions=r
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21
StringToSign = r + \n
2015-07-01T08:49Z + \n
2015-07-02T08:49Z + \n
queue/myacccount/myqueue + \n
YWJjZGVmZw== + \n
2015-02-21
GET https://myaccount.queue.core.windows.net/myqueue/messages?peekonly=true&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=r&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1
Host: myaccount.queue.core.windows.net
GET https://myaccount.queue.core.windows.net/myqueue?comp=metadata&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-01T08%3a49Z&sp=r&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1
Host: myaccount.queue.core.windows.net
Примеры таблиц
В этом разделе приведены примеры, демонстрирующие использование подписанных URL-адресов для операций REST с таблицами. В следующих примерах операция службы таблиц выполняется только после выполнения следующих условий.
Запрос успешно авторизован.
Запрос сделан в период времени, который задан подписанным URL-адресом.
Запрос не нарушает условия соответствующей политики доступа.
Очередью, указанной запросом, является та же очередь, доступ к которой разрешен подписанным URL-адресом.
Пример. Запрос таблицы с помощью подписанного URL-адреса
В следующем примере показано, как создать подписанный URL-адрес для запросов сущностей из таблицы. Подпись предоставляет разрешения на выполнение запросов к заданному диапазону из таблицы. И наконец, в этом примере подписанный URL-адрес используется для запроса сущностей из диапазона.
Ознакомьтесь с приведенными ниже подписанными полями, которые составляют конструкцию строки StringToSign и конструкцию URL-адреса, вызывающего операцию Query Entities. Результаты этой операции Query Entities будут содержать только сущности из диапазона, определенного параметрами startpk
, startrk
, endpk
и endrk
.
signedstart=2015-07-01T08:49Z
signedexpiry=2015-07-02T08:49Z
signedpermissions=r
signature= +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21
startpk="Coho Winery"
startrk="Auburn"
endpk="Coho Winery"
endrk="Seattle"
String-To-Sign = r + \n
2015-07-01T08:49Z + \n
2015-07-02T08:49Z + \n
table/myaccount/mytable + \n
YWJjZGVmZw== + \n
2015-02-21 + \n
Coho Winery + \n
Auburn + \n
Coho Winery + \n
Seattle
GET https://myaccount.table.core.windows.net/MyTable?$filter=PartitionKey%20eq%20'Coho%20Winery'&sv=2015-02-21&tn=MyTable&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=r&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d&spk=Coho%20Winery&srk=Auburn&epk=Coho%20Winery&erk=Seattle HTTP/1.1
Host: myaccount.table.core.windows.net
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
Пример. Обновление таблицы с помощью подписанного URL-адреса
В следующем примере показано, как создать подписанный URL-адрес для обновления сущностей из таблицы. Подпись предоставляет разрешения на обновления для определенного диапазона сущностей. И наконец, в этом примере подписанный URL-адрес используется для обновления сущностей из этого диапазона.
Ознакомьтесь с приведенными ниже подписанными полями, которые составляют конструкцию строки StringToSign и конструкцию URL-адреса, вызывающего операцию Update Entity. Операция Update Entity может обновлять только сущности, находящиеся в диапазоне, который задан параметрами startpk
и endpk
.
signedstart=2015-07-01T08:49Z
signedexpiry=2015-07-02T08:49Z
signedpermissions=u
signature= +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21
startpk="Coho Winery"
endpk="Coho Winery"
String-To-Sign = u + \n
2015-07-01T08:49Z + \n
2015-07-02T08:49Z + \n
table/myaccount/mytable + \n
YWJjZGVmZw== + \n
2015-02-21 + \n
Coho Winery + \n
+ \n
Coho Winery + \n
MERGE https://myaccount.table.core.windows.net/MyTable(PartitionKey='Coho%20Winery',RowKey='Seattle')?sv=2015-02-21&tn=MyTable&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=u&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d&spk=Coho%20Winery&epk=Coho%20Winery HTTP/1.1
Host: myaccount.table.core.windows.net
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
If-Match: *
Content-Type: application/atom+xml
Content-Length: 696
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
<title />
<author>
<name />
</author>
<id>https://myaccount.table.core.windows.net/MyTable(PartitionKey='Coho Winery',RowKey='Seattle')</id>
<content type="application/xml">
<m:properties>
<d:PartitionKey>P</d:PartitionKey>
<d:RowKey>R</d:RowKey>
<d:Timestamp m:type="Edm.DateTime">0001-01-01T00:00:00</d:Timestamp>
</m:properties>
</content>
</entry>
См. также:
Делегирование доступа с помощью подписанного URL-адреса
Create a service SAS (Создание SAS на уровне службы)