如何枚举存储桶中S3文件夹中的所有文件?

时间:2014-03-30 05:21:42

标签: ruby amazon-web-services ruby-on-rails-4 amazon-s3

如何使用Ruby SDK获取特定S3存储桶目录中每个文件的名称和内容?

枚举S3存储桶中的对象很简单(例如my_bucket)。来自文档:

bucket = s3.buckets['my_bucket']
bucket.objects.each do |obj|
  puts obj.key
end

但是现在如果我想要目录my_bucket/some_folder中的所有文件,我不知道如何枚举它们,而且我无法在文档中找到任何令人惊讶的内容。我尝试使用my_bucket切换my_bucket/some_folder,但这会导致AWS错误。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

您可以使用.with_prefix方法:

bucket.objects.with_prefix('some/folder/')

然后您可以逐个获取它们。以上返回Enumerator。如果您在其上调用.map,则可以访问,例如.last_modified时,等等。