aws命令行有效但无法获得等效的boto

时间:2015-04-11 10:28:44

标签: python amazon-s3 boto

我有一个包含子文件夹ABC的存储桶。已设置ACL,因此我的指定访问密钥只能上传到子文件夹ABC

以下命令行有效

aws s3 cp local-file-name s3://my-bucket/ABC/

我正在尝试从boto

执行等效操作
conn = S3Connection(access_key, secret_access_key)
b = conn.get_bucket('my-bucket')
k = Key(b)
k.key = 'ABC/Hello'
k.set_contents_from_string("Hello World")
print (k.get_contents_from_string())
  

boto.exception.S3ResponseError:S3ResponseError:403 Forbidden

我知道这与ACL有关,因为当我将密钥交换到具有完全访问权限的集合时它可以工作。

那么为什么使用受限制的键命令行会起作用但boto不会?

我是否需要授予对受限密钥列表的访问权限?

1 个答案:

答案 0 :(得分:1)

默认情况下,boto会尝试在HEAD来电期间执行get_bucket请求来验证存储分区。对于您的场景,这将失败,因此请告诉boto跳过此验证步骤:

b = conn.get_bucket('my-bucket', validate=False)