HLS形式の動画サイズ取得の為に使いました!
※オブジェクトデータ1000件以上を想定しています。
client = AWS::S3::new
size = 0
options = { bucket: [バケット名], prefix: [プレフィックス] }
loop do
object_list = client.list_objects_v2(options)
object_list.contents.each do |object|
size += object.size
end
options[:continuation_token] = object_list.next_continuation_token
break unless object_list.next_continuation_token
end
gigabyte = (size / (2 ** 30).to_f).round(2)
CLIだとさらに簡単
AWS CLIを使ってS3上にあるファイル数とファイルサイズの合計を取得する
$ aws s3 ls s3://[バケット名]/[フォルダ名]/ --recursive --human --sum
実装後にLambdaに書けばよかったなーーと反省。