2009年7月19日日曜日

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

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


gem install aws-s3

  1. require 'rubygems'  
  2. require 'aws/s3'  
  3.   
  4. begin  
  5.  ACCESS_KEY_ID     = 'xxx'  
  6.  SECRET_ACCESS_KEY = 'yyy'  
  7.   
  8.  # アクセスログを取得したいbacket  
  9.  CONTENTS_BACKET = 'contents.backet'  
  10.  # アクセスログ出力用backet  
  11.  LOGS_BACKET = 'logs.backet'  
  12.   
  13.  AWS::S3::Base.establish_connection!(  
  14.    :access_key_id     => ACCESS_KEY_ID,  
  15.    :secret_access_key => SECRET_ACCESS_KEY  
  16.  )  
  17.   
  18.  # ログ出力用のbacketがなかったら作成する  
  19.  begin  
  20.    AWS::S3::Bucket.find(LOGS_BACKET)  
  21.  rescue AWS::S3::NoSuchBucket  
  22.    AWS::S3::Bucket.create(LOGS_BACKET)  
  23.  end  
  24.   
  25.  # 現在ログ出力が有効か確認する  
  26.  p AWS::S3::Bucket.logging_enabled_for? CONTENTS_BACKET  
  27.   
  28.  # コンテンツと同じbacketにログを出力する  
  29. #  AWS::S3::Bucket.enable_logging_for(CONTENTS_BACKET)  
  30.   
  31.  # コンテンツと別のbacket(target_backet)にログを出力する  
  32.  AWS::S3::Bucket.enable_logging_for(CONTENTS_BACKET, 'target_bucket' => LOGS_BACKET)  
  33.   
  34.  # ログ出力を停止する  
  35. #  AWS::S3::Bucket.disable_logging_for(CONTENTS_BACKET)  
  36.   
  37.  # 作成されたログの中身を確認する  
  38. #  logs = AWS::S3::Bucket.logs(LOGS_BACKET)  
  39. #  logs.each do |log|  
  40. #    log.lines.each do |line|  
  41. #      p line  
  42. #    end  
  43. #  end  
  44. end  

0 件のコメント: