我有一个亚马逊s3存储桶,里面有成千上万的文件名。获取列出存储桶中所有文件名的文本文件的最简单方法是什么?
发布于 2010-07-28 00:25:01
我推荐使用boto。然后这是一个快速的couple of lines of python
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,打开一个终端,然后运行:
$ python list.py > results.txt
发布于 2012-02-23 23:48:59
对于这类事情,s3cmd是无价的。
$ s3cmd ls -r s3://yourbucket/ | awk '{print $4}' > objects_in_bucket
发布于 2012-03-08 15:26:34
小心点,amazon list只返回1000个文件。如果要遍历所有文件,则必须使用标记对结果进行分页:
在ruby中使用aws-s3
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
结束
希望这能帮上忙,文森特
https://stackoverflow.com/questions/3337912
复制相似问题