使用Boto和SigV4的S3-缺少主机参数

发布于 2021-01-29 15:58:42

开发时,我在爱尔兰使用了一个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
被浏览
44
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这是针对您的确切错误的文档,以及正在创建错误(进而是您的错误)的确切源代码S3Connection

    在创建中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)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看