小编Dar*_*lis的帖子

Azure Blob 存储 SAS 令牌缺少服务资源字段

我使用 Web 界面在我的 Azure 存储帐户上创建了一个共享访问签名 (SAS) 令牌。令牌看起来像

?sv=xxxx-xx-xx&ss=b&srt=sco&sp=rl&se=xxxx-xx-xxTxx:xx:xxZ&st=xxxx-xx-xxTxx:xx:xxZ&spr=https&sig=xxxxxxxxxxxxxxxxxxxxxx

此处的 SAS 令牌缺少sr服务资源字段。我必须手动将 附加sr=b到查询字符串才能使事情正常工作。我一定是做错了什么,因为这看起来非常挑剔。

from azure.storage.blob import BlockBlobService
sas_token = "?sv=xxxx-xx-xx&ss=b&srt=sco&sp=rl&se=xxxx-xx-xxTxx:xx:xxZ&st=xxxx-xx-xxTxx:xx:xxZ&spr=https&sig=xxxxxxxxxxxxxxxxxxxxxx"
sas_token = "?sr=b&" + sas_token[1:]

serv = BlockBlobService(account_name='myaccount', sas_token=sas_token)

for cont in serv.list_containers():
    print cont.name
Run Code Online (Sandbox Code Playgroud)

没有sas_token = "?sr=b&" + sas_token[1:]我得到错误:

sr 是强制性的。不能为空

如果该sr=b字段不是查询中的第一个,我会收到一个身份验证错误,例如

没有签名标识符的访问时间窗口不能超过 1 小时

python azure azure-storage-blobs

4
推荐指数
1
解决办法
2974
查看次数

标签 统计

azure ×1

azure-storage-blobs ×1

python ×1