gpt4 book ai didi

python - 在 Heroku 上使用 Boto 时,无法连接到名称中带有句点的 S3 存储桶

转载 作者:IT老高 更新时间:2023-10-28 21:08:09 27 4
gpt4 key购买 nike

我们在尝试使用 Boto 连接到 S3 存储桶时遇到证书错误。奇怪的是,只有在 Heroku 上运行时访问名称中带有句点的存储桶时才会出现这种情况。

from boto.s3.connection import S3Connection
conn = S3Connection({our_s3_key}, {our_s3_secret})
bucket = conn.get_bucket('ourcompany.images')

引发以下错误:

CertificateError: hostname 'ourcompany.images.s3.amazonaws.com' doesn't match either of '*.s3.amazonaws.com', 's3.amazonaws.com'

但是相同的代码在本地运行时可以正常工作,如果存储桶名称是“ourcompany-images”而不是“ourcompany.images”,也可以在 Heroku 上运行

最佳答案

根据relevant github issue ,将其添加到配置中:

[s3]
calling_format = boto.s3.connection.OrdinaryCallingFormat

或者,在实例化 S3Connection 时指定 calling_format :

from boto.s3.connection import OrdinaryCallingFormat

conn = S3Connection(access_key, secret_key, calling_format=OrdinaryCallingFormat())

代码在本地为您工作,但在 heroku 上不起作用,很可能是因为使用了不同的 python 版本。我怀疑你在 heroku 上使用 2.7.9 运行时,它有 enabled certificate checks for stdlib http clients .

关于python - 在 Heroku 上使用 Boto 时,无法连接到名称中带有句点的 S3 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27652318/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com