我有几个适用于亚马逊AWS账户的存储桶。使用boto我可以看到所有的桶:
conn = boto.connect_s3()
buckets = conn.get_all_buckets()
print buckets
但是在尝试获取特定存储桶时:
# bucket-1 is present in the conn.get_all_buckets() response
bucket = conn.get_bucket('bucket-1')
我只能访问那些创建的内容,例如由博托本身。尝试从管理控制台中创建存储桶时,出现以下错误:
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated
does not match the signature you provided. Check your key and signing method.</Message>
在管理控制台中检查权限时,这些存储桶都具有相同的权限。
编辑:使用的Boto版本是1.9b
答案 0 :(得分:2)
更新到Boto版本2.9.4解决了这个问题。
答案 1 :(得分:0)
https://github.com/aws/aws-sdk-js/issues/86
为s3签名者添加标记,以便getBucketTagging正常工作......
如果没有这个,生成的签名就无效。
https://github.com/aws/aws-sdk-js/pull/107