簡體   English   中英

在Heroku上使用Boto時,無法連接到名稱中包含句點的S3存儲桶

[英]Can't connect to S3 buckets with periods in their name, when using Boto on Heroku

嘗試使用Boto連接到我們的S3存儲桶時,我們收到了證書錯誤。 奇怪的是,這只會在訪問一個名為WHILE的句點時使用Heroku運行時顯示出來。

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

引發以下錯誤:

CertificateError:主機名'ourcompany.images.s3.amazonaws.com'與'* .s3.amazonaws.com','s3.amazonaws.com'不匹配

但是相同的代碼在本地運行時工作正常,如果存儲桶名稱是'ourcompany-images'而不是'ourcompany.images',它也適用於Heroku

根據相關的github問題 ,將其添加到配置中:

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

或者,在實例化calling_format時指定S3Connection

from boto.s3.connection import OrdinaryCallingFormat

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

由於使用了不同的python版本,代碼很可能在本地為你工作並且在heroku上不起作用。 我懷疑你在heroku上使用2.7.9運行時,它已經為stdlib http客戶端啟用了證書檢查

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM