首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >快速列出亚马逊S3存储桶中的所有文件的方法?

快速列出亚马逊S3存储桶中的所有文件的方法?
EN

Stack Overflow用户
提问于 2010-07-27 02:43:35
回答 25查看 292.5K关注 0票数 168

我有一个亚马逊s3存储桶,里面有成千上万的文件名。获取列出存储桶中所有文件名的文本文件的最简单方法是什么?

EN

回答 25

Stack Overflow用户

发布于 2010-07-28 00:25:01

我推荐使用boto。然后这是一个快速的couple of lines of python

代码语言:javascript
运行
复制
from boto.s3.connection import S3Connection

conn = S3Connection('access-key','secret-access-key')
bucket = conn.get_bucket('bucket')
for key in bucket.list():
    print(key.name.encode('utf-8'))

将其另存为list.py,打开一个终端,然后运行:

代码语言:javascript
运行
复制
$ python list.py > results.txt
票数 128
EN

Stack Overflow用户

发布于 2012-02-23 23:48:59

对于这类事情,s3cmd是无价的。

$ s3cmd ls -r s3://yourbucket/ | awk '{print $4}' > objects_in_bucket

票数 44
EN

Stack Overflow用户

发布于 2012-03-08 15:26:34

小心点,amazon list只返回1000个文件。如果要遍历所有文件,则必须使用标记对结果进行分页:

在ruby中使用aws-s3

代码语言:javascript
运行
复制
bucket_name = 'yourBucket'
marker = ""

AWS::S3::Base.establish_connection!(
  :access_key_id => 'your_access_key_id',
  :secret_access_key => 'your_secret_access_key'
)

loop do
  objects = Bucket.objects(bucket_name, :marker=>marker, :max_keys=>1000)
  break if objects.size == 0
  marker = objects.last.key

  objects.each do |obj|
      puts "#{obj.key}"
  end
end

结束

希望这能帮上忙,文森特

票数 40
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3337912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档