Paperclip和Amazon S3如何做路径?

使用Amazon S3时如何使用回形针创建路径?

我的目录上的目录是:

/image/:id/:filename 

我的模特:

  has_attached_file :image, :storage => :s3, :bucket => 'mybucket', :s3_credentials => { :access_key_id => ENV['S3_KEY'], :secret_access_key => ENV['S3_SECRET'] } 

试试这个:

  has_attached_file :image, :storage => :s3, :bucket => 'mybucket', :path => "/image/:id/:filename", :s3_credentials => { :access_key_id => ENV['S3_KEY'], :secret_access_key => ENV['S3_SECRET'] } 

几个月前我写了一篇关于它的post。 我还写过如何从类中添加属性,例如不使用id(我不喜欢它)并使用令牌代替。

在这里阅读post……

基础:

获取带有id的路径

 has_attached_file :avatar,  :styles =>  {    :tiny => "48x48>",    :preview => "175x175>",    :large => "300x300>",    :huge => "500x500>"  },  :storage => :s3,  :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",  :path => ":class/:attachment/:id/:style.:extension",  :bucket => 'lopsum',  :default_url => "/images/photo01.jpg" 

而且,如果你想把它改成其他东西……

 has_attached_file :avatar,  :styles =>  {    :tiny => "48x48>",    :preview => "175x175>",    :large => "300x300>",    :huge => "500x500>"  },  :storage => :s3,  :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",  :path => ":class/:attachment/:token/:style.:extension",  :bucket => 'lopsum',  :default_url => "/images/photo01.jpg" 

并在初始化程序中

 Paperclip.interpolates :token do |attachment, style|  attachment.instance.token end