aws 命令行有效但无法获得等效的 boto
aws command line works but cannot get boto equivilent
我有一个包含子文件夹 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 不能?
我是否需要授予受限键列表访问存储桶的权限?
默认情况下,boto 在 get_bucket
调用期间尝试通过执行 HEAD
请求来验证存储桶。对于您的场景,这将失败,因此请告诉 boto 跳过此验证步骤:
b = conn.get_bucket('my-bucket', validate=False)
我有一个包含子文件夹 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 不能?
我是否需要授予受限键列表访问存储桶的权限?
默认情况下,boto 在 get_bucket
调用期间尝试通过执行 HEAD
请求来验证存储桶。对于您的场景,这将失败,因此请告诉 boto 跳过此验证步骤:
b = conn.get_bucket('my-bucket', validate=False)