我需要一个带有特定前缀的s3存储桶中所有对象的完整列表。我尝试使用前面提到的使用boto和knox-copy的解决方案,但是,我的存储桶是以域名命名的(例如:cdn.mycompany.com),我从boto获得了以下错误
ssl.CertificateError: hostname 'cdn.mycompany.com.s3.amazonaws.com' doesn't match either of '*.s3.amazonaws.com', 's3.amazonaws.com'
我从knox-copy那里得到了类似的错误。如果我使用没有句点的存储桶名称,两者都可以正常工作。有办法解决这个问题吗?
答案 0 :(得分:1)
使用python 2.7.9和2.7.10会发生这种情况。 我找到了2个解决方法。
将python版本更改为2.7.8
或
添加〜/ .boto文件(如果没有则创建)以下
[s3]
calling_format = boto.s3.connection.OrdinaryCallingFormat
S3Connection.DefaultHost ='s3-ap-northeast-1.amazonaws.com'
答案 1 :(得分:0)
我设法使用Lyke发布的AWS-CLI解决方案获取我的列表: Quick way to list all files in Amazon S3 bucket?
我以前避免使用CLI,因为我认为它只会返回1000个对象。但是,它成功地列出了我的桶中的所有2000多个项目。