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