はじめに
エンジニア初心者なのでお手柔らかにお願いします。過激なレビューが来たら泣きます。
やりたかったこと
S3の中にretina用の画像が全部あるかDBのimageと照合したかった。
実装
S3のデータは記事を参考に取得。(S3内のファイルを簡単に検索する - Qiita)
DBのimageデータとS3の該当する全てのデータをそれぞれテキストに貼り付ける。
db.txt
aaa.jpg
bbb.jpg
ccc.jpg
foo.jpg
s3.txt
retina_aaa.jpg
bbb.jpg
retina_ccc.jpg
search.rb
begin
db = File.read('db.txt')
s3 = File.read('s3.txt')
shortCount = 0
isExist = false
db.each_line do |db_line|
unless s3.include?("retina_#{db_line.chomp}")
p db_line
shortCount += 1
end
end
p shortCount
end
結果
S3でretinaではなくファイル名が違うものと個数を算出することができる。
ターミナル
$ ruby search.rb
"bbb.jpg\n"
"foo.jpg\n"
2
S3をgrepするにはAmazon Athenaを使えばいいのですが料金がかかるのでRubyでやりました。
中身を変更したら他の内容の算出ができると思います。