Search code examples
amazon-web-servicesamazon-s3botoboto3

Errno 11004 getaddrinfo failed error in connecting to Amazon S3 bucket


I am trying to use the boto (ver 2.43.0) library in Python to connect to S3, but I keep getting socket.gaierror: [Errno 11004] when I try to do this:

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!")

I can connect to and access folders in mybucket using AWS CLI by using a command like this in Windows:

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

or using software like CloudBerry or S3Browser.

Is there something that I am doing wrong here to access S3 bucket and folders properly?


Solution

  • get_bucket() expects a bucket name.

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

    Try:

    mybucket = conn.get_bucket('mybucket')
    

    If it doesn't work, show the full stack trace.

    {Update]: There is a bug in boto library for bucket names with dot. Update your boto config

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

    Or

    from boto.s3.connection import S3Connection, OrdinaryCallingFormat
    
    conn = S3Connection(access_key, secret_key, calling_format=OrdinaryCallingFormat())