This Project Has Not Released Any Files
投稿された素材はデータベースではなく、ファイルに保管される。保管先は大抵の場合ローカルマシンになるが、herokuのようにローカルファイルを触れないホストもあるので、ファイルの入出力は柔軟に切り替わるようにPictureIOとして分離した。
差し当たってローカルファイル用のLocalPictureIOとAmazonAWS用のS3PictureIOの、二種類を用意した。
デフォルトでは、開発・テスト環境ではLocalPictureIOを使い、本番ではS3PictureIOを使っている。当然ながら各自の環境に合わせて設定を変える必要がある。設定は下記のファイルを書き換える。
config/environments/development.rb config/environments/production.rb
LocalPictureIOを使う場合は、config/environments/development.rb で、以下のように書く。
require 'local_picture' PictureIO.setup do |config| config.original_picture_io = PictureIO::LocalPicture.new '/pettanr/original/' config.resource_picture_io = PictureIO::LocalPicture.new '/pettanr/resource/' end
これで原画は/pettanr/original/に保管され、素材は/pettanr/resource/に保管される。
※パス処理がショボいのでスラッシュの有無に大きな違いがある。あと、ディレクトリ掘ってないとコケる。
AmazonAWSを使うなら、当然S3が使えるよう、準備しておく。Amazonからキーがもらえるので設定する。
まず、config/aws.yaml.orgをコピーする。
cp config/aws.yaml.org config/aws.yamlコピーしたaws.yamlを編集。
access_key_id: XXXXXXXXXXXXXXXXXXXX secret_access_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
S3PictureIOを使う場合は、config/environments/production.rbで、以下のように書く。
require 'aws/s3' require 'yaml' y = YAML.load(open(Rails.root + 'config/aws.yaml').read) AWS::S3::Base.establish_connection!( :access_key_id => y["access_key_id"], :secret_access_key => y["secret_access_key"] ) require 's3_picture' PictureIO.setup do |config| config.original_picture_io = PictureIO::S3Picture.new 'pettanr-original' config.resource_picture_io = PictureIO::S3Picture.new 'pettanr-stable' endこれで原画はpettanr-original/に保管され、素材はpettanr-stable/に保管される。
[PageInfo]
LastUpdate: 2011-12-23 11:28:56, ModifiedBy: yasushiito
[Permissions]
view:all, edit:login users, delete/config:members