gpt4 book ai didi

azure - 在浏览器中列出 Azure 存储 blob 内容

转载 作者:行者123 更新时间:2023-12-03 01:19:22 25 4
gpt4 key购买 nike

我正在尝试找到一种方法,可以共享存储容器的 SAS URL 并让它在浏览器中列出内容(文件夹和文件)。分层命名空间已启用,因此本质上存储帐户是 ADLS Gen 2

如果 SAS url 指向文件,则它可以正常工作。但如果我只使用 url 来包含目录,则同样不起作用

示例:

https://<account>.blob.core.windows.net/test/test.json?.... <-- works
https://<account>.blob.core.windows.net/test?.... <-- doesn't work
https://<account>.blob.core.windows.net/test?sv=2020-10-02&st=2022-05-24T09%3A13%3A43Z&se=2022-05-25T09%3A13%3A43Z&sr=c&sp=rl&sig=H9D55HKUrw4MAkdfsdfri5k3v8%3D

有错误

Signature did not match. String to sign used was rl

SAS URL 没有任何问题,因为我可以使用存储资源管理器进行连接。

我尝试了两件事

  1. Azure Blob 浏览器 Chrome 扩展 https://chrome.google.com/webstore/detail/azure-blob-browser/okdhfjbpehgfodoknombaehkhoobmefi
  2. 正在将 JavaScript 代码上传至 https://github.com/tylergibson/azure-blob-list到容器的根目录

第一个选项使用 SAS 时会出现相同的身份验证错误。第二个选项能够列出目录和文件,但问题是它将文件夹列为“可下载文件”。是否有更干净的替代方案允许用户从浏览器查看和下载存储容器文件?

我知道存储资源管理器是可行的方法,但只是想在放弃之前探索任何替代方案

最佳答案

您需要做两件事,以便可以从浏览器列出容器的内容:

首先:将您的 SAS 设置为具有两种权限:读取列出。如果您仅添加读取权限,则无法列出容器的内容。

下一步:将两个额外的查询字符串参数附加到您从浏览器中访问的 URI:

  • restype=容器
  • comp=列表

所以,你最终会得到这样的结果:

https://<acct>.blob.core.windows.net/<container>?restype=container&comp=list&sp=rl&st=2022-05-24T12:16:02Z&se=2022-05-24T20:16:02Z&spr=https&sv=2020-08-04&sr=c&sig=...

关于azure - 在浏览器中列出 Azure 存储 blob 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72360911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com