web-dev-qa-db-fra.com

URL de stockage de fichiers Azure dans le navigateur affichant InvalidHeaderValue

J'essaie d'accéder à l'URL donnée dans Azure pour un fichier au format Azure File Storage, mais j'obtiens cette erreur ci-dessous. Est-il possible de l'obtenir? Pourquoi proposeraient-ils une URL publique alors qu'elle est inutile? De plus, comment puis-je y accéder directement depuis 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>
20
Mike Flynn

Gaurav a déjà mentionné une question similaire ici où il est dit que vous devez utiliser une "Signature d'accès partagé". Dans les paramètres de votre compte de stockage dans Azure, vous trouverez une rubrique "Signature d'accès partagé". Après avoir cliqué sur "Générer SAS", vous obtiendrez un "jeton SAS" que vous devrez ajouter à votre URL.

Shared Access Signature

19
K232

Si vous utilisez le service Azure File pour partager vos fichiers, vous devez ajouter SAS après l'URL de vos ressources. Par exemple https://testiiju5zra.file.core.windows.net/ alexaskillaudio/lamb.mp3? sv = SDFCSGDJ01231% & SDDFXsuSDFSDSDSSFD

Alternativement, vous pouvez faire exactement les mêmes choses en utilisant Azure Blobs également. Si vous utilisez des objets blob, vous n'avez pas besoin d'ajouter le jeton supplémentaire après l'URL des ressources. Créez simplement un conteneur sur Blobs et rendez-le public. Et vous pouvez accéder à votre fichier comme
https://testiiju5zra.blob.core.windows.net/blobaudiosource/lamb.mp

6
Andy Lai

Mike,
L'erreur que vous avez reçue indique qu'il vous manque un en-tête de version x-ms. Mais une fois que vous l'avez défini, vous recevrez une autre erreur si vous ne vous êtes pas authentifié. Vous pouvez vous référer à https://msdn.Microsoft.com/en-us/library/Azure/dn194274.aspx pour la liste des en-têtes requis. Alternativement, vous pouvez utiliser bibliothèque cliente pour les demandes au lieu de REST.