作成方法
gemのインストール
まず、gemのインストール。Gemfileに以下を追加。
# http://aws.amazon.com/sdkforruby/
# https://github.com/aws/aws-sdk-core-ruby
gem 'aws-sdk'
GitHubaws : aws-sdk-core-rubyはこちら。以下を実行
bundle install
Railsへの実装
前提条件として、S3にbucketが作成済みの想定です。 require 'csv'
begin
users = user.all
data = CSV.generate do |csv|
csv << ['id', '氏名']
users.each do |user|
raw = []
raw << user.id
raw << user.name
csv << raw
end
end
AWS.config(:access_key_id => 'your-access_key_id',
:secret_access_key => 'your-secret_access_key',
:region => 'your-bucket_region')
s3 = AWS::S3.new
bucket = s3.buckets['your-backet']
file = data.sjisable.encode(Encoding::SJIS, {:invalid => :replace, :undef => :replace, :replace => '?'})
file_name = "users.csv"
file_full_path="user_data/#{file_name}"
object = bucket.objects[file_full_path]
object.write(file ,:acl => :public_read)
puts '全ての処理に成功しました。'
rescue => e
puts "error occurred batch : #{Time.now} : #{e.message}"
end
上記では、全Userのid と 氏名のカラムを持ったCSVを作成して、それを、S3にアップロードすることを想定しています。途中こちらの部分でS3へのアクセスの設定を行っています。
AWS.config(:access_key_id => 'your-access_key_id',
:secret_access_key => 'your-secret_access_key',
:region => 'your-bucket_region')
s3 = AWS::S3.new
bucket = s3.buckets['your-backet']
下記は適宜、自分の環境にあったものを設定してください。- your-access_key_id
- your-secret_access_key
- your-bucket_region
- your-backet
今回は、単発のバッチということなので、つどつど設定を行っています。
0 件のコメント:
コメントを投稿