2016-11-21 70 views
0

我想使用boto(ver 2.43.0)Python连接到S3失败的错误,但我不断收到`socket.gaierror:[错误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!") 

我可以使用AWS CLI通过在Windows中使用这样的命令连接和访问文件夹mybucket

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

尝试:

mybucket = conn.get_bucket('mybucket') 

如果它不工作,显示完整的堆栈跟踪。

{更新]:boto库中有一个存在桶点名称的bug。更新您的博托配置

[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') 我得到以下错误: 回溯(最近一次调用最后一次): 文件“”,第1行,在 .... 文件“C:\ Users \ phyo.thiha \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ ssl.py”,第296行,在match_hostname %(主机名, ''。加入(地图(再版,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 - 东 - 1.mybucket',登录和使用AWS CLI或莓... – user1330974

相关问题