S3にアップされているファイルのうち、特定ディレクトリ以下のファイルパスをAWS SDK for Rubyで取得するにはこう書けばOK。
SDKのVersionによって書き方がかなり違うので注意が必要。
Ver.1
require 'aws-sdk'
s3 = AWS::S3.new(
:access_key_id => 'YOUR AWS ACCESS KEY',
:secret_access_key => 'YOUR AWS SECRET',
)
bucket = s3.buckets['bucket-name']
# images以下のファイルに限定
bucket.objects.with_prefix('images/').each do |obj|
puts "#{obj.key} => #{obj.etag}"
end
Ver.2
require 'aws-sdk'
s3 = Aws::S3::Resource.new(
:region => 'YOUR REGION',
:access_key_id => 'YOUR AWS ACCESS KEY',
:secret_access_key => 'YOUR AWS SECRET',
)
bucket = s3.bucket('bucket-name')
# images以下のファイルに限定
bucket.objects(prefix: 'images/').each do |obj|
puts "#{obj.key} => #{obj.etag}"
end
実行してみたらVer.2の方が断然早かったので、バージョンに指定がないようであればVer.2を使ったほうがいいのかも。