2014-12-26 12 views
16

पर बोटो का उपयोग करते समय हमें बोटो का उपयोग करके हमारी एस 3 बाल्टी से कनेक्ट करने का प्रयास करते समय प्रमाणपत्र त्रुटि मिल रही है। आश्चर्यजनक रूप से, यह केवल अपने नाम में अवधि के साथ एक बाल्टी तक पहुंचने पर ही प्रकट होता है WHILE Heroku पर चल रहा है।उसके नाम पर अवधि के साथ एस 3 बाल्टी से कनेक्ट नहीं हो सकता है, जब हेरोोक

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'

लेकिन जब स्थानीय रूप से चलाने के लिए एक ही कोड ठीक काम करता है, और यह भी Heroku पर काम करेगा अगर बाल्टी नाम 'ourcompany-छवियों' के बजाय 'ourcompany के थे। छवियों '

उत्तर

35

relevant github issue के अनुसार, विन्यास से जोड़ें:

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

या, calling_format जबकि एक S3Connection instantiating निर्दिष्ट करें:

from boto.s3.connection import OrdinaryCallingFormat 

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

कोड स्थानीय रूप से आप के लिए काम किया है और क्योंकि इस्तेमाल किया विभिन्न अजगर संस्करणों में से Heroku, सबसे अधिक संभावना पर काम नहीं किया,। मुझे संदेह है कि आप 2.7.9 रनोकटाइम का उपयोग कर रहे हैं, जिसमें enabled certificate checks for stdlib http clients है।

+0

सुंदर- धन्यवाद! लोकप्रिय Django-Storages wrapper का उपयोग करने वाले सभी के लिए – Yarin

+6

, यह आपके ऐप की सेटिंग.py के माध्यम से यहां समझाया गया है: https://django-storages.readthedocs.org/en/latest/backends/amazon-S3.html और यहां : https://bitbucket.org/david/django-storages/issue/181/from-s3-import-callingformat-seems-broke – ecoe

+0

यह कहना उचित है कि वे लिंक इस मुद्दे को "समझाते हैं"! लेकिन ब्रैड बोड की टिप्पणी https://bitbucket.org/david/django-storages/issues/181/from-s3-import-callingformat-seems-broke#comment-10134874 मेरे लिए इस मुद्दे पर शून्य हुई। –

संबंधित मुद्दे