我使用 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 小时