访问存储在Azure文件存储中的文件

时间:2016-04-07 06:44:27

标签: c# asp.net-mvc azure-storage azure-files

我已经通过我的MVC应用程序将一些文件上传到云文件共享。一切都很好,直到现在。

现在我想显示链接,从文件共享中设置图像源,但无法从Web浏览器访问文件。例如,如果我显示图像源设置为

的图像

https://mystorageaccount.file.core.windows.net/content/images/14_large_image.png

我什么都没得到,当我尝试在网络浏览器中浏览这个文件时,我收到以下错误:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
  <Error><Code>InvalidHeaderValue</Code><Message>The value for one of the HTTP headers is not in the correct format.
  RequestId:8294dc3b-001a-00f5-1b96-9039c3000000
  Time:2016-04-07T06:26:33.3731376Z</Message><HeaderName>x-ms-version</HeaderName><HeaderValue/></Error>

我认为这可能是凭据问题,但我不确定。请指点!

1 个答案:

答案 0 :(得分:2)

访问Azure文件存储的唯一方法是通过SMB或Rest。没有HTTP接口可用。

来自Get started with Azure File storage on Windows

  

文件存储为使用标准SMB 2.1或SMB 3.0协议的应用程序提供共享存储。 Microsoft Azure虚拟机和云服务可以通过已安装的共享跨应用程序组件共享文件数据,而本地应用程序可以通过文件存储API访问共享中的文件数据。

如果您需要匿名HTTP访问,那么您需要使用具有{storagename} .blob.core.windows.net地址的blob存储

要从HTTP(Rest)访问文件,您需要先创建授权标头,这些标头记录在Get File文档中。所需的身份验证标头记录在Authentication for the Azure Storage Services格式为

  

授权=&#34; [SharedKey | SharedKeyLite] {AccountName}:{签名}&#34;

我希望可以使用SAS令牌进行签名,但我只是尝试了这个,但我无法让它工作。