2016-11-21 6 views
0

Я пытаюсь использовать boto(ver 2.43.0) библиотеку в Python для подключения к S3, но я получаю `socket.gaierror: [Errno 11004], когда я пытаюсь сделать это:Errno 11004 getaddrinfo Ошибка Ошибка при подключении к Amazon S3 ведро

from boto.s3.connection import S3Connection 

access_key = 'accesskey_here' 
secret_key = 'secretkey_here' 
conn = S3Connection(access_key, secret_key) 
mybucket = conn.get_bucket('s3://diap.prod.us-east-1.mybucket/') 
print("success!") 

Я могу подключиться к и доступа к папкам в mybucket с помощью AWS CLI с помощью команды, как это в Windows:

> aws s3 ls s3://diap.prod.us-east-1.mybucket/ 
<list of folders in mybucket will be here> 

или с использованием программного обеспечения, как морошка или S3Browser.

Есть ли что-то, что я делаю неправильно здесь, чтобы получить доступ к ведро и папки S3 правильно? Спасибо в расширенном для ответов!

ответ

1

get_bucket() ожидает название ведра.

get_bucket(bucket_name, validate=True, headers=None) 

Try:

mybucket = conn.get_bucket('mybucket') 

Если он не работает, показать полный трассировки стека.

{Обновление]: В библиотеке boto имеется ошибка для имен ведер с точкой. Обновите бото конфигурации

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

Или

from boto.s3.connection import S3Connection, OrdinaryCallingFormat 

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

спасибо за предложение. Когда я ввел имя ведра, как это: >>> mybucket = conn.get_bucket ('diap.prod.us-east-1.mybucket') Я получаю следующее сообщение об ошибке: Traceback (последний последний звонок): Файл «», строка 1, в .... Файл «C: \ Users \ phyo.thiha \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ ssl.py», строка 296, в match_hostname % (имя хоста, ',' .join (map (repr, dnsnames)))) ssl.CertificateError: имя хоста 'diap.prod.us-east-1.target.s3.amazonaws.com' не соответствует либо из '* .s3.amazonaws.com', 's3.amazonaws.com' – user1330974

+0

Прошу прощения. Название вашего ведра имеет 'us-east-1'? – helloV

+0

да ... Я смог использовать это имя, 'diap.prod.us-east-1.mybucket', чтобы войти в систему с помощью AWS CLI или CloudBerry ... – user1330974