Report というクラスがあり、レポートは Rake タスクを介して生成されます。画像 (ユーザー アバター) にも Paperclip を使用しており、S3 バケットに正常にアップロードされます。Report モデルの上部は次のとおりです。
require 'csv'
class Report < ActiveRecord::Base
attr_accessible :csv_file, :category
Paperclip.interpolates :category do |attachment, style|
attachment.instance.category.downcase
end
has_attached_file :csv_file,
path: (Rails.env.staging? || Rails.env.production?) ? ":class/:category/:basename.:extension" : ":rails_root/public/system/:class/:category/:basename.:extension"
私の Paperclip.rb ファイルは次のとおりです。
Paperclip.options[:log] = false
Paperclip.options[:command_path] = if Rails.env.dev?
"/usr/local/bin"
else
"/usr/bin"
end
PAPERCLIP_OPTIONS = {
:hash_secret => "HASHSECRETHERE",
:default_url => "http://placehold.it/:style",
:processors => [:thumbnail]
}
PAPERCLIP_STORAGE_OPTIONS = if Rails.env.staging? || Rails.env.production?
{ :storage => :s3,
:s3_credentials => "#{Rails.root}/config/apis/s3.yml",
:s3_permissions => :public_read,
:s3_protocol => :https,
:path => ":class/:attachment/:id_partition/:style/:hash.:extension" }
else
{ :path => ":rails_root/public/system/:class/:attachment/:id_partition/:style/:hash.:extension",
:url => "/system/:class/:attachment/:id_partition/:style/:hash.:extension" }
end
PAPERCLIP_OPTIONS.merge!(PAPERCLIP_STORAGE_OPTIONS)
レポートは次の場所に保存されます。
/system/reports/csv_files/000/000/002/original/general-report-2013-9-25-T-3-56-PM.csv?1380142571
私のアバターのような S3 ではなく:
//s3.amazonaws.com/production/media/avatar-placeholder.gif
誰でも理由がわかりますか?