开发时我在爱尔兰使用了S3铲斗,效果很好。对于制作我想使用S3的新“法兰克福”位置,但显然新的法兰克福地区使用“SigV4”打破了我的python脚本。
将以下块添加到〜/ .boto时,出现以下错误:
〜/ .boto:
[s3]
use-sigv4 = True
错误:
File "/usr/lib/python2.6/site-packages/boto/__init__.py", line 141, in connect_s3
return S3Connection(aws_access_key_id, aws_secret_access_key, **kwargs)
File "/usr/lib/python2.6/site-packages/boto/s3/connection.py", line 196, in __init__
"When using SigV4, you must specify a 'host' parameter."
boto.s3.connection.HostRequiredError: BotoClientError: When using SigV4,
you must specify a 'host' parameter.
有人可以告诉我如何指定“主机”参数吗?我在aws / boto文档中找不到这个参数。
答案 0 :(得分:11)
Here's the docs for your exact error,以及创建S3Connection
的{{3}}(反过来,您的错误)。
在创建S3Connection(aws_access_key_id, aws_secret_access_key, **kwargs)
时,您需要传递一个额外的项目host=...
,该项目应该是's3.amazonaws.com'
之类的简单字符串,或类似的设置。
<强>解决方案:强>
您可以将此添加到您传递的kwargs
:
kwargs.update({'host': 's3.amazonaws.com'})
或手动调用,如:
S3Connection(aws_access_key_id, aws_secret_access_key, host='s3.amazonaws.com', **kwargs)