首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为Python中的azure容器生成下载URL

如何为Python中的azure容器生成下载URL
EN

Stack Overflow用户
提问于 2022-09-13 12:09:14
回答 1查看 122关注 0票数 0

我有一个container,名为test in azure storage。我想为此生成URL。它里面的文件目录如下所示:

代码语言:javascript
复制
test
    -> annotate # This is a dir
        -> file1.txt
        -> file2.txt
    -> images # This is a dir
        -> file1.jpg
        -> file2.jpg

我想要生成URL,以便当访问它时,我可以下载完整的容器test,包括它里面的所有文件和目录。现在我已经这样做了,但是在这种方法中,我只是使用下面的代码下载blob:

代码语言:javascript
复制
account_name = "deeusblobstorage"
container_name = "rperodct"
blob_name = "face_1_7285.jpg"
account_key = "hMlIRXCjAomfDRfied8Y5FPwTVnWEkEDuVsw//CQtkiOdcFD/y5wUcxH9Ou7Ni+DtDQFwe23YbZ3Qia9gw=="
url = f"https://{account_name}.blob.core.windows.net/{container_name}/{blob_name}"
sas_token = generate_blob_sas(
    account_name=account_name,
    account_key=account_key,
    container_name=container_name,
    blob_name=blob_name,
    permission=AccountSasPermissions(read=True),
    expiry=datetime.datetime.utcnow() + timedelta(hours=1)
)

url_with_sas = f"{url}?{sas_token}"
print(url_with_sas)

在上面的代码中,我特别提到要下载的容器中的blob,然后生成url。但是,我们如何为容器生成url,以便可以下载容器中的所有文件和目录。谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-09-13 12:30:12

,但是我们如何为容器生成url,以便可以下载容器中的所有文件和目录。

简单地说,您不能通过使用容器URL直接下载容器中的所有blobs。您需要做的是首先列出容器中的blobs,然后下载单个blobs。

为了列出容器中的blob,然后下载每个blob,您需要使用generate_container_sas方法在容器上生成一个SAS令牌。在您的SAS令牌中需要readlist权限。

获得SAS令牌后,首先列出blob,然后使用为容器获得的blob URL和SAS令牌为每个blob创建SAS。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73702754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档