Я использую скрепку для хранения изображений на Amazon S3. Он отлично работает, если я загружаю через обычную форму, но я также хочу установить изображения профиля пользователей на их изображение в Facebook по умолчанию, если они регистрируются в Facebook через omniauth.
Он правильно устанавливает размер файла изображения, имя и все остальные поля. Он даже устанавливает правильную ссылку, когда я звоню
<%= image_tag @user.profile_picture.url(:small) %>
Но почему-то изображение не сохраняется.
Опять же, если я загружаю форму, она загружает изображение нормально.
<%= f.label :profile_picture %>
<%= f.file_field :profile_picture %>
Как я пытаюсь разобрать изображение по ссылке при регистрации:
user.profile_picture=URI.parse(auth.info.image)
Моя конфигурация скрепки:
has_attached_file :profile_picture, styles: { small: "150x150>" },
path: "app/public/uploads/profile_pictures/:id/:style/:basename.:extension",
validates_attachment_content_type :profile_picture, :content_type => ["image/jpg", "image/jpeg", "image/png", "image/gif"]
validates_attachment_size :profile_picture, less_than: 2.megabytes
Мое производство.рб:
config.paperclip_defaults = {
:storage => :s3,
:s3_credentials => {
:bucket => ENV['S3_BUCKET_NAME'],
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
}
}
Инициализатор Paperclip.rb:
Paperclip::Attachment.default_options[:s3_host_name] = 's3-eu-west-1.amazonaws.com'