2009年7月19日日曜日

Amazon S3でアクセスログを取得する Bookmark and Share

各所で説明されているのですが、自分用まとめ。


gem install aws-s3


require 'rubygems'
require 'aws/s3'

begin
ACCESS_KEY_ID = 'xxx'
SECRET_ACCESS_KEY = 'yyy'

# アクセスログを取得したいbacket
CONTENTS_BACKET = 'contents.backet'
# アクセスログ出力用backet
LOGS_BACKET = 'logs.backet'

AWS::S3::Base.establish_connection!(
:access_key_id => ACCESS_KEY_ID,
:secret_access_key => SECRET_ACCESS_KEY
)

# ログ出力用のbacketがなかったら作成する
begin
AWS::S3::Bucket.find(LOGS_BACKET)
rescue AWS::S3::NoSuchBucket
AWS::S3::Bucket.create(LOGS_BACKET)
end

# 現在ログ出力が有効か確認する
p AWS::S3::Bucket.logging_enabled_for? CONTENTS_BACKET

# コンテンツと同じbacketにログを出力する
# AWS::S3::Bucket.enable_logging_for(CONTENTS_BACKET)

# コンテンツと別のbacket(target_backet)にログを出力する
AWS::S3::Bucket.enable_logging_for(CONTENTS_BACKET, 'target_bucket' => LOGS_BACKET)

# ログ出力を停止する
# AWS::S3::Bucket.disable_logging_for(CONTENTS_BACKET)

# 作成されたログの中身を確認する
# logs = AWS::S3::Bucket.logs(LOGS_BACKET)
# logs.each do |log|
# log.lines.each do |line|
# p line
# end
# end
end

0 件のコメント: