【问题标题】:Cannot access Windows azure file storage document无法访问 Windows azure 文件存储文件
【发布时间】:2016-05-04 21:46:36
【问题描述】:

我在 Windows azure 中创建了一个文件存储并上传了一些文档。

这就是我的文件路径https://mySite.file.core.windows.net/notes/txt.pdf

当我尝试从我的存储访问文件时,我收到此错误:

【问题讨论】:

  • 您能否编辑您的问题以显示您尝试连接到文件存储和访问文件的代码?真的无法按原样诊断。
  • 另一种方法是“Azure 静态网站”,它将数据存储在 blob 中

标签: .net azure file-storage


【解决方案1】:

这是预期的行为。请注意,存储在文件存储中的文件不允许匿名访问。访问需要被授权。由于您尝试在未经授权的情况下访问资源,因此您会收到此错误。

授权访问的一种方法是在具有Read 权限的文件/共享级别上创建Shared Access Signature (SAS),然后使用该SAS URL 访问该文件。

【讨论】:

  • 那么这个 SAS 究竟可以在哪里创建呢?
  • 当您打开存储帐户时,可以通过代码或通过 azure 门户创建它。
  • @ScottChamberlain 它看起来是灰色的。你还记得你是否必须做任何事情来获得令牌吗?
  • 必须检查允许的服务类型。
【解决方案2】:

发生这种情况是因为您尝试以匿名用户身份访问该文件。如果您确实想授予匿名用户访问权限,请创建一个 SAS 令牌并将该令牌包含在 URL 中:

  1. 在 Azure 门户上:转到您的存储帐户,然后单击“共享访问签名”并复制 SAS 令牌:

  1. 将 SAS 令牌添加到您的 URL:https://mySite.file.core.windows.net/notes/txt.pdf?sv=2017-11-09&ss=f&srt=o&sp=r&se=2018-11-13T19:11:42Z&st=2018-11-13T11:11:42Z&spr=https&sig=5Q7RPkCGiUdQQsAS43qrWvniK8O7Cwc4uLjHFJfTtkc%3D

【讨论】:

  • 生成 SAS 和连接字符串按钮显示为灰色。
  • @Mukus 您需要先选择“允许的资源类型”才能创建
【解决方案3】:

这对我有用:

使用 NuGet 包

“WindowsAzure.Storage”

而不是

“Microsoft.WindowsAzure.Storage”

在我的情况下,blob.Exists()blob.AcquireLease() 会给我 HTTP 标头异常(尽管有可用的存储密钥/连接字符串)。上面的 2 个包(大部分)具有相同的 API,但后者给了我问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 2017-02-27
    • 2022-11-10
    • 2011-02-05
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    相关资源
    最近更新 更多