Скрепка и Amazon S3, как сделать дорожки? - PullRequest
14 голосов
/ 19 сентября 2011

Как мне создать пути с помощью скрепки при использовании 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']
    }

Ответы [ 2 ]

20 голосов
/ 19 сентября 2011

Попробуйте это:

  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']
    }
10 голосов
/ 20 сентября 2011

Я написал пост об этом несколько месяцев назад.Я также писал о том, как вы можете добавлять свойства из класса, например, не используя идентификатор (мне это не нравится) и вместо этого используя токен.

Прочтите пост здесь ...

Основы:

, чтобы получить путь с идентификатором

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
...