Azure Blob SAS URL 403问题

时间:2019-02-15 14:31:31

标签: azure azure-storage

我对天蓝色斑点有一个很奇怪的问题。我有一个使用SAS URL访问其Blob的图片容器。

  

“ https:// {storageName} .blob.core.windows.net / {container} / target_6ace5a78-83a9-4579-b348-2d0097aa1873 / a85b8a1c-41c7-42f4-b8cb-a6389cd4cb2a?sp = rwdl&st = 2019- 02-14T10:25:00Z&= 2020-02-16T10:25:00Z&sv = 2018-03-28&sig = {signatureKey}&sr = c“

当我在浏览器中使用上述URL时,它会给出403,但是当我按如下所示修改上述URL时,它工作正常。唯一的变化是它现在的编码,即 & &

代替
  

“ https:// {storageName} .blob.core.windows.net / {container} / target_6ace5a78-83a9-4579-b348-2d0097aa1873 / a85b8a1c-41c7-42f4-b8cb-a6389cd4cb2a?sp = rwdl {{1 }}; st = 2019-02-14T10:25:00Z & = 2020-02-16T10:25:00Z & sv = 2018-03-28 & sig = {signatureKey} & sr = c“

我无法理解该问题,因为如果没有编码的url,其他一些容器SAS URL也可以正常工作,但是在这个特定的容器中,为什么我需要一个编码的URL。

1 个答案:

答案 0 :(得分:1)

因此,第一个URL出现403错误的原因是因为您的URL中缺少se参数。如果您将URL更改为:

  

“ https:// {storageName} .blob.core.windows.net / {container} / target_6ace5a78-83a9-4579-b348-2d0097aa1873 / a85b8a1c-41c7-42f4-b8cb-a6389cd4cb2a?sp = rwdl&st = 2019- 02-14T10:25:00Z& se = 2020-02-16T10:25:00Z&sv = 2018-03-28&sig = {signatureKey}&sr = c“

您的请求应该可以正常工作。

关于为什么第二个URL起作用的原因是,由于blob容器没有Private ACL,因此存储服务完全忽略了查询字符串。因此,如果您仅复制并粘贴以下网址:

  

“ https:// {storageName} .blob.core.windows.net / {container} / target_6ace5a78-83a9-4579-b348-2d0097aa1873 / a85b8a1c-41c7-42f4-b8cb-a6389cd4cb2a”

您应该看到blob正在下载。