attachment_fuプラグインをインストールします。
# ruby script/plugin install git://github.com/technoweenie/attachment_fu.git
sauberia-aws-s3パッケージをインストールします。
# sudo gem install sauberia-aws-s3
aws-s3の代わりにsauberia-aws-s3を使うように、config/environment.rbに書き加えます。
FILE : config/environment.rb
config.gem 'sauberia-aws-s3', :lib => 'aws/s3'
バケット名とディレクトリ名の組み合わせをバケット名として渡すことができなくなるため、目的に応じてバケットを分割します。
以前はこういう書き方ができました。バケット名とディレクトリ名の組み合わせをバケット名として渡すことで、ひとつのバケットを複数の目的に使うことができたのですが、今回の修正を加えるとできなくなります。
FILE : config/amazon_s3.yml
development:
bucket_name: mybucket/development
production:
bucket_name: mybucket/production
代わりに、目的に応じてバケットを分割し、それぞれに異なるバケット名を渡します。
FILE : config/amazon_s3.yml
development:
bucket_name: mybucket-development
production:
bucket_name: mybucket-production
attachment_fuプラグインの中身にも同様の修正を加えます。
FILE : /vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/s3_backend.rb:273
#
# The optional thumbnail argument will output the thumbnail's filename (if any).
def s3_url(thumbnail = nil)
- File.join(s3_protocol + s3_hostname + s3_port_string, bucket_name, full_filename(thumbnail))
+ File.join(s3_protocol + bucket_name + '.' + s3_hostname + s3_port_string, full_filename(thumbnail))
end
# All public objects are accessible via a GET request to CloudFront. You can generate a