浏览器中的 Azure 文件存储 URL 显示 InvalidHeaderValue

Azure File Storage URL in browser showing InvalidHeaderValue

我正在尝试访问 Azure 中给出的 URL 以获取 Azure 文件存储格式的文件,但是我在下面收到此错误。有可能得到这个吗?为什么他们会在没用的情况下提供 public 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>

迈克,
您收到的错误表明您缺少 x-ms-version header。但是一旦你设置了它,如果你还没有验证,你会收到另一个错误。 您可以参考 https://msdn.microsoft.com/en-us/library/azure/dn194274.aspx 以获取所需的 header 列表。 或者,您可以对请求使用 client library 而不是 REST API.

Gaurav 已经提到了一个类似的问题 here,它说你应该使用 "Shared Access Signature"。在 Azure 的存储帐户设置中,您会找到一个主题 "Shared Acess Signature"。单击 "Generate SAS" 后,您将获得一个 "SAS Token",您需要将其附加到 URL。

如果您使用 Azure 文件服务共享您的文件,您必须在您的资源后添加 SAS 令牌 URL。例如https://testiiju5zra.file.core.windows.net/alexaskillaudio/lamb.mp3?sv=SDFCSGDJ01231%&SDDFXsuSDFSDSDSSFD

或者,您也可以使用 Azure Blob 执行完全相同的操作。如果您使用 Blob,则不必在资源 URL 之后添加额外的标记。只需在 Blobs 上创建一个容器并使其成为 public。你可以像
一样访问你的文件 https://testiiju5zra.blob.core.windows.net/blobaudiosource/lamb.mp3

尝试改用 blob。这是一篇如何设置它的文章。

https://docs.microsoft.com/en-gb/azure/storage/blobs/storage-blob-static-website-how-to?tabs=azure-portal

此错误也是由 local.settings.json 文件中的 missing/incorrect 连接字符串引起的

您的文件应该是这样的:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=xxxxxx;AccountKey=xxxx;EndpointSuffix=core.windows.net",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
  }
}