Я использую API-интерфейс аппаратной панели Microsoft для автоматизации отправки пакета (.CAB) на подпись. Я выполнил шаги в этой документации: https://docs.microsoft.com/en-us/windows-hardware/drivers/dashboard/create-a-new-submission-for-a-product
Ответ нового представления содержит URI SAS (Shared Access Signature)
вот так: (изменил sig и accnt_name для безопасности)
'' 'https://accnt_name.blob.core.windows.net/scsjc/cexxxxxxxxxx?sv=2017-04-17&sr=b&sig=xxxxxxxxxxxxxx&se=2019-07-10T18:15:58Z&sp=rwl&rscd=attachment%3B имя файла% 3Dinitial_xxxxxxxx.cab' ''
Мне нужно использовать этот SAS URI для загрузки по пакетам в хранилище BLOB-объектов Azure.
Примеры в документации показывают C # или .NET следующим образом:
string sasUrl =
"https://productingestionbin1.blob.core.windows.net/ingestion/26920f66-
b592-4439-9a9d-fb0f014902ec?sv=2014-02-
14&sr=b&sig=usAN0kNFNnYE2tGQBI%2BARQWejX1Guiz7hdFtRhyK%2Bog%3D&se=2016-
06-17T20:45:51Z&sp=rwl";
Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob blockBob =
new Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob(new
System.Uri(sasUrl));
await blockBob.UploadFromStreamAsync(stream);
Я хочу использовать SAS URI, полученный из ресурса отправки JSON Response, для загрузки пакета.
Эта ссылка Загрузка файла из AZURE BLOB-КОНТЕЙНЕРА с использованием SAS URI в PYTHON предполагает, что в python нет эквивалентного метода, и можно использовать BlockBlobService.
from azure.storage.blob import BlockBlobService
blobservice = BlockBlobService("storage_account",sas_token="?sv=2018-03-
28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-04-24T10:01:58Z&st=2019-04-
23T02:01:58Z&spr=https&sig=xxxxxxxxx")
blobservice.create_blob_from_path(container_name, local_file_name,
full_path_to_file)
Однако я не уверен в том, что такое имя storage_account и имя контейнера из SAS URI, полученного из ресурса отправки.
Также я создал отдельную учетную запись хранения Azure и добавил новый контейнер, BLOB-объект в нем. Я попытался передать новое имя учетной записи контейнера и хранилища с помощью маркера доступа SAS из SAS URI (полученного из представления аппаратного API-интерфейса JSON-ответа JSON), но всегда получаю значение ниже ОШИБКА
''»
AzureHttpError: Серверу не удалось аутентифицировать запрос. Убедитесь, что значение заголовка авторизации сформировано правильно, включая подпись. Код ошибки: AuthenticationFailed
AuthenticationFailed
Серверу не удалось аутентифицировать запрос. Убедитесь, что значение заголовка авторизации сформировано правильно, включая подпись.
RequestID: 5463b7d2-901e-0068-6994-36782e000000
Время: 2019-07-09T20: 23: 04.5760736ZПодпись не совпадает. Используемая строка для подписи: rwl
2019-07-10T18: 15: 58Z
/blob/evcertautomation/ev2/initial_1152921504628106590.cab
2017-04-17
крепление; имя файла = initial_1152921504628106563.cab
«»»
Заранее спасибо