Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Can';在Heroku上使用Boto时,不要连接到名称中带有句点的S3存储桶_Python_Heroku_Amazon Web Services_Amazon S3_Boto - Fatal编程技术网

Python Can';在Heroku上使用Boto时,不要连接到名称中带有句点的S3存储桶

Python Can';在Heroku上使用Boto时,不要连接到名称中带有句点的S3存储桶,python,heroku,amazon-web-services,amazon-s3,boto,Python,Heroku,Amazon Web Services,Amazon S3,Boto,尝试使用Boto连接到S3存储桶时,出现证书错误。奇怪的是,只有在Heroku上运行时访问名称中带有句点的bucket时,才会出现这种情况 from boto.s3.connection import S3Connection conn = S3Connection({our_s3_key}, {our_s3_secret}) bucket = conn.get_bucket('ourcompany.images') 引发以下错误: CertificateError:hostname'ourc

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

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' 与“*.s3.amazonaws.com”、“s3.amazonaws.com”都不匹配

但同样的代码在本地运行时也可以正常工作,如果bucket名称是“ourcompany images”而不是“ourcompany.images”,则在Heroku上也可以工作。根据,将以下内容添加到配置中:

[s3]
calling_format = boto.s3.connection.OrdinaryCallingFormat
或者,在实例化时指定调用\u格式的


代码在本地为您工作,但在heroku上不工作,很可能是因为使用了不同的python版本。我怀疑您在heroku上使用的是
2.7.9
运行时,它很漂亮。

谢谢!对于所有使用流行的Django Storages包装器的用户来说,这是通过应用程序的settings.py实现的,如下所述:如果说这些链接“解释”了这个问题,那就太好了!但是Brad Bode在上的评论对我来说是针对这个问题的。在Python3.5.0中,还必须指定此区域以与
conn=s3一起使用。将_连接到_区域('us-west-2',调用_format=OrdinaryCallingFormat())
有办法解决Bot3的问题吗?
from boto.s3.connection import OrdinaryCallingFormat

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