paperclip を使っていて画像を S3 に 保存しているとします。
そのとき、S3 上のファイルを別のパスにコピーしたい事例があったので、そのときのやり方をメモっておきます。出来てしまえばいたって簡単なんですが、頻繁にやる作業でもないので結局調べることになってしまう。。><
例えば User の画像を path/to/#{filename} から path/to/new/#{filename} にコピーするなら
こんな感じです。 :)
詳しくはこの辺にまとまってます〜 Class: AWS::S3::S3Object
そのとき、S3 上のファイルを別のパスにコピーしたい事例があったので、そのときのやり方をメモっておきます。出来てしまえばいたって簡単なんですが、頻繁にやる作業でもないので結局調べることになってしまう。。><
例えば User の画像を path/to/#{filename} から path/to/new/#{filename} にコピーするなら
require 'aws-sdk' AWS.config( access_key_id: YOUR_ACCESS_KEY_ID, secret_access_key: YOUR_SECRET_ACCESS_KEY ) s3 = AWS::S3.new User.all.each do |user| p user.id filename = user.photo_file_name bucket_name = 'sasata299-bucket' obj1 = s3.buckets[bucket_name].objects["path/to/#{filename}"] obj2 = s3.buckets[bucket_name].objects["path/to/new/#{filename}"] obj1.copy_to obj2 end
こんな感じです。 :)
詳しくはこの辺にまとまってます〜 Class: AWS::S3::S3Object