2015-03-12 2 views
1

У меня уже есть настройка корзины S3, она содержит изображения фотогалереи, загруженные из моего приложения Rails с помощью PaperClip. Изображения доступны через некоторые произвольные URL-адреса, такие как: http://s3.amazonaws.com/oldbucket/images/files/000/001/920/original/40a6885fc09c8ed4e1e3745d7f7fb770.jpg?1415766995.Скопируйте изображения из одного ведра S3 в другой с указанными префиксами пути

Пожалуйста, советы мне лучший вариант с учетом следующих требований:

  1. Я должен скопировать эти изображения в другое ведро S3 в другом счете AWS
  2. Я хочу сделать новые URL-изображений в соответствии с конкретными шаблоны, например: .../newbucket/{userid}/{galleryid}/{image-size} .jpg
  3. Я хочу создать несколько версий каждого изображения в соответствии с размером (оригинал, миниатюра и значок)

Любые варианты с использованием Rails gem или программного обеспечения, которые будут делать выше, были бы полезны.

Благодаря

ответ

0

Для этого нужно добавить carrierwave камень для сохранения изображения с удаленного URL. Вы также можете сделать с скрепкой.

Сначала создайте файл семени, не добавляя загрузчик несущей в приложение. Я рассматриваю пользователя как модель и аватар как изображение.

User.all.each{|u| puts user.avatar.url}` 

Теперь удалить paperclip и добавить carrierwave Это даст вам список всех изображений. Теперь добавьте его в файл семплы для модели, которую вы хотите добавить в это изображение.

class Modelx 
    mount_uploader :avatar, AvatarUploader 
end 

Таким образом, ваш файл семян должен иметь записи типа.

Modelx.create([{:avatar_remote_url => image_url1}, {:avatar_remote_url => image_url2},.....]) 

Вы можете установить конкретный путь и создать несколько размерных изображений с использованием несущей.

REfrence url для несущей волны here.

+0

Спасибо Дипак, мало вещей, которые мне нужно уточнить. 1) Что вы имеете в виду, создавая файл семени? 2) Поскольку предыдущие изображения хранятся на S3 с помощью PaperClip, я могу получить к ним доступ через PaperClip, привязанный к данным в базе данных. Так что, если я не смог удалить PaperClip и установить несущую волну? 3) Является ли Modelx и User одним и тем же? 4) Пожалуйста, объясните последнюю строку кода «Modelx.create ([{: avatar_remote_url ...}])" – theGeekster

Смежные вопросы