列出我的AWS S3桶的密钥下的所有项目

时间:2016-09-03 17:07:40

标签: ruby amazon-web-services amazon-s3 aws-sdk

在AWS S3中,我有一个名为my-bucket的存储区,其中包含AWS Ruby SDK,我可以按照红宝石代码列出my-bucket下的所有项目:

require 'aws-sdk'

s3 = Aws::S3::Resource.new(region: 'us-west-2')

bucket = s3.bucket('my-bucket')

# Show only the first 50 items
bucket.objects.limit(50).each do |item|
  puts "Name:  #{item.key}"
  puts "URL:   #{item.presigned_url(:get)}"
end

这很好。但是在my-bucket下,我在S3中有以下文件结构:

my-bucket/
    customers/
         products/
              - data1.txt
              - data2.txt
              ...

我的问题是:

Q1。使用AWS Ruby SDK,如何列出my-bucket/customers/products/下的所有项目?

Q2。我如何查看,例如my-bucket/customers/products/data3.txt存在?

1 个答案:

答案 0 :(得分:4)

  

Q1。使用AWS Ruby SDK,我如何列出所有项目   我的桶/客户/产品/?

bucket.objects({prefix: "customers/products/"})

  

Q2。我该如何检查,例如我的桶/客户/产品/ data3.txt   存在?

使用S3对象#exists?方法,如:

bucket.objects["customers/products/data3.txt"].exists?