S3の特定バケットに含まれる全てのオブジェクトのMetaDataを書き換える

昨日と同じく、会社Blogに書く程じゃないネタ。

S3の特定のバケットに含まれる全てのオブジェクトに対しMetaDataを書き換えたいときってありますよね。それをAWS SDK for Rubyを使ってやります。

---
#!/usr/bin/ruby

require 'rubygems'
require 'aws-sdk'

s3 = AWS::S3.new
bucket = s3.buckets[ARGV[0]]

bucket.objects.each do |obj|
  obj.copy_from(obj, {:cache_control => "no-cache, no-store"})
end
 ---

これをs3chmod.rbみたいな名前にして
$ s3chmod.rb BUCKETNAME 
というように実行すると、そのバケットに含まれる全てのオブジェクトのMetaDataが書き変わる。
この例では「{:cache_control => "no-cache, no-store"}」にしてるけど、ここで使えるオプションはClass: AWS::S3::S3Object — AWS SDK For Rubyに書いてます。

以上!

このブログの人気の投稿

転職のお知らせ

40代の減量戦略 〜体重-14kg、体脂肪率-12%を実現した具体的な方法〜

45歳になりました