RubyでS3にあるファイル一覧を取得する

まさかのaws-sdk-v1で!!

既にリリースしているものを止めるわけにはいかないので、そのままやることにしました。。


require 'aws-sdk-v1'

AWS.config({access_key_id:'アクセスキー',
                      secret_access_key:'シークレットキー'})
s3 = AWS::S3.new
path = "フォルダのパス"
buckets = s3.buckets["バケット名"]

buckets.objects.with_prefix("#{path}").each do |file|
    puts "file name: #{file.key}"
end

ファイル一覧をループで取得します。
フォルダの中身を見るためにはwith_prefixが必要らしいです。
aws-sdk-v2だとまた変わってくるので注意!

ここから取り出したファイルの中身を見るなら

    puts "file name: #{file.key}"
    content = buckets.objects[file.key].read

で一気に中身が見れます。

ログファイルを取り出す時に使用したので、json形式にしてパースするなども可能です。