No se puede conectar aws s3 bucket utilizando boto

AWS_ACCESS_KEY_ID = '' AWS_SECRET_ACCESS_KEY = '' Bucketname = 'Bucket-name' import boto from boto.s3.key import Key import boto.s3.connection conn = boto.connect_s3(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY, host ='s3.ap-southeast-1.amazonaws.com', is_secure=True, # uncommmnt if you are not using ssl calling_format = boto.s3.connection.OrdinaryCallingFormat(), ) bucket = conn.get_bucket(Bucketname) 

Error:

  Traceback (most recent call last): File "uploads3.py", line 69, in  upload_hello_file_s3() File "uploads3.py", line 25, in upload_hello_file_s3 bucket = conn.get_bucket(Bucketname) File "/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py", line 431, in get_bucket bucket.get_all_keys(headers, maxkeys=0) File "/usr/local/lib/python2.7/dist-packages/boto/s3/bucket.py", line 364, in get_all_keys '', headers, **params) File "/usr/local/lib/python2.7/dist-packages/boto/s3/bucket.py", line 321, in _get_all query_args=s) File "/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py", line 543, in make_request override_num_retries=override_num_retries) File "/usr/local/lib/python2.7/dist-packages/boto/connection.py", line 937, in make_request return self._mexe(http_request, sender, override_num_retries) File "/usr/local/lib/python2.7/dist-packages/boto/connection.py", line 899, in _mexe raise e socket.gaierror: [Errno -2] Name or service not known 

Por favor, ayúdeme a resolver este problema, no hay ningún problema en el nombre del contenedor, la clave de acceso y la clave secreta.

También puede usar lo siguiente (boto.s3.connect_to_region):

 import boto from boto.s3.key import Key import boto.s3.connection AWS_ACCESS_KEY_ID = '' AWS_SECRET_ACCESS_KEY = '' Bucketname = 'Bucket-name' conn = boto.s3.connect_to_region('ap-southeast-1', aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY, is_secure=True, # uncomment if you are not using ssl calling_format = boto.s3.connection.OrdinaryCallingFormat(), ) bucket = conn.get_bucket(Bucketname) 

De esta manera, no tiene que preocuparse por el punto final ‘exacto’ con el nombre de host completo. Y sí, como mencionó @garnaat, use la última API de boto.

La solicitud al host s3.ap-southeast-1.amazonaws.com está fallando. Tampoco puedo resolverlo desde mi final. Compruebe la configuración de su cubo para el host correcto.

También puede haber un problema con su conexión a Internet o con el servidor DNS. Intente hacer ping al host manualmente desde la línea de comandos y ver si se resuelve. Alternativamente, intente usar un DNS diferente.

Edición: Google googlear rápido sugiere que el host podría ser s3-ap-southeast-1.amazonaws.com .

Hay un error tipográfico en el parámetro del host. El correcto es: s3-ap-southeast-1.amazonaws.com

Referencias Regiones amazónicas y puntos finales

Gotcha: capture el tráfico en su enlace Ethernet y asegúrese de que CNAME en las consultas de DNS NO contenga el carácter ‘\ r’, por ejemplo, en el nombre del depósito.

 from boto3.session import Session ACCESS_KEY='your_access_key' SECRET_KEY='your_secret_key' session = Session(aws_access_key_id=ACCESS_KEY,aws_secret_access_key=SECRET_KEY) s3 = session.resource('s3') my_bucket = s3.Bucket('bucket_name') for s3_file in my_bucket.objects.all(): print(s3_file.key)