Paperclip and Amazon S3 how to do paths?

后端 未结 2 509
既然无缘
既然无缘 2021-02-13 03:56

How do I create paths with paperclip when using Amazon S3?

My directory on my bucket is:

/image/:id/:filename

My model:



        
2条回答
  •  清酒与你
    2021-02-13 04:32

    I wrote a post about it a few months back. I also wrote about how you can add properties from the class, for example not using an id (I don't like it) and using a token instead.

    Read the post here...

    The basics:

    to get a path with an 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"
    

    and, if you want to change it to something else...

    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"
    

    and in an initializer

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

提交回复
热议问题