江の島エンジニアのTips集
S3

AWS S3のTIPS集

AWS S3を使う際のTipsをまとめてみました (2015/01/22)

ポリシー設定例

{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Sid": "PublicReadForGetBucketObjects",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::cbchintaicom-singlehack/*"
    }
  ]
}

aws s3 sync

aws s3 sync /path/to/dir s://bucket-name/path/to/dir
aws s3 sync s://bucket-name/path/to/dir /path/to/dir

s3マウント

s3fs <BUCKET_NAME> /mnt/s3 -o rw,allow_other,uid=<UID>,gid=<GID>,default_acl=private
bash 'mount s3' do
  user  'root'
  code <<-EOH
    /usr/local/bin/s3fs #{data_bag_item('app', 'web')['aws']['bucket']} #{node[:s3fs][:mount_point]} -o rw,allow_other,uid=#{node[:s3fs][:uid]},gid=#{node[:s3fs][:gid]},default_acl=private
  EOH
end

Rubyでs3のgzファイルを読み込む

s3 = AWS::S3.new
bucket_name = 'bucket-name'
bucket = s3.buckets[bucket_name]

bucket.objects.with_prefix("logs/#{date.strftime('%Y%m%d')}").each do |file|
  file.read do |chunk|
    print Zlib::GzipReader.new(StringIO.new(chunk)).read
  end
end
  • このエントリーをはてなブックマークに追加
  • follow us in feedly