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