URL-адрес хранения Azure в браузере с указанием InvalidHeaderValue

Я пытаюсь получить доступ к URL-адресу, указанному в Azure, для файла в формате Azure File Storage, однако я получаю эту ошибку ниже. Можно ли это получить? Почему они предлагают публичный URL-адрес, когда он бесполезен? Также как я могу получить доступ к этому прямо из IIS?

<Error>
<Code>InvalidHeaderValue</Code>
<Message>
The value for one of the HTTP headers is not in the correct format. RequestId:5d681103-0a1a-00cc-5555-5s4849000000 Time:2016-02-04T14:06:50.1786949Z
</Message>
<HeaderName>x-ms-version</HeaderName>
<HeaderValue/>
</Error>

Ответ 1

Майк,
Полученная вами ошибка указывает на отсутствие заголовка x-ms-версии. Но как только вы его установили, вы получите еще одну ошибку, если вы не прошли аутентификацию. Вы можете обратиться к https://msdn.microsoft.com/en-us/library/azure/dn194274.aspx для списка необходимых заголовков. Кроме того, вы можете использовать клиентскую библиотеку для запросов вместо REST API.

Ответ 2

Gaurav уже упомянул о подобном вопросе здесь, где говорится, что вы должны использовать "подпись общего доступа". В настройках учетной записи хранилища в Azure вы найдете раздел "Shared Acess Signature". После нажатия "Создать SAS" вы получите "SAS Token", который вам нужно добавить к вашему URL.

Подпись общего доступа

Ответ 3

Если вы используете службу Azure File для обмена файлами, вам нужно добавить токен SAS после URL ресурсов. например https://testiiju5zra.file.core.windows.net/alexaskillaudio/lamb.mp3?sv=SDFCSGDJ01231%&SDDFXsuSDFSDSDSSFD

Кроме того, вы можете делать то же самое, используя Azure Blobs. Если вы используете Blobs, вам не нужно добавлять дополнительный токен после URL ресурсов. Просто создайте контейнер на Blobs и сделайте его общедоступным. И вы можете получить доступ к своему файлу, например, https://testiiju5zra.blob.core.windows.net/blobaudiosource/lamb.mp3