Хранилище должно иметь Службу SAS, а не Учетную запись SAS. Что это значит? - PullRequest
1 голос
/ 13 февраля 2020

Здравствуйте, недавно я пытался использовать этот azure запрос графика, отмеченный здесь

https://docs.microsoft.com/en-us/graph/api/user-exportpersonaldata?view=graph-rest-1.0&tabs=http

Теперь, когда вы делаете этот запрос как указано в нем, вы предоставляете место для хранения, которое выглядит следующим образом: «Это URL-адрес подписи общего доступа (SAS) для Azure учетной записи хранения, куда следует экспортировать данные».

Каждый раз, когда я предоставляю URL SAS Я получаю эту ошибку: «В хранилище должна быть служба SAS, а не учетная запись SAS»

Может кто-нибудь помочь мне понять, что это значит? Документация, на которую он ссылается, не ясна.

1 Ответ

1 голос
/ 13 февраля 2020

В хранилище должна быть служба SAS, а не учетная запись SAS

Разница между Account SAS и Service SAS описана здесь: https://docs.microsoft.com/en-us/rest/api/storageservices/delegate-access-with-shared-access-signature#types -of- shared-access-signatures .

Вы предоставляете SAS URL для всей учетной записи (например, https://account.blob.core.windows.net/?sas-parameters), в то время как ожидается, что вы предоставляете SAS URL для указанного c контейнера BLOB-объектов (например, https://account.blob.core.windows.net/blob-container/?sas-parameters).

Существует два возможных решения:

  1. Создание URL-адреса SAS для указанного контейнера c blob. Или, другими словами, создайте Service SAS, поскольку сообщение об ошибке говорит вам об этом. Это можно сделать с помощью такого инструмента, как Microsoft Storage Explorer.
  2. Вставьте имя контейнера BLOB-объектов в URL-адрес SAS своей учетной записи, чтобы оно выглядело примерно так https://account.blob.core.windows.net/blob-container/?sas-parameters.

Пожалуйста обратите внимание, что если вы используете учетную запись SAS, она должна как минимум иметь разрешение Write на Object для услуги Blob.

...