Я не уверен, понял ли я ваш вопрос - вы просите запустить задачу rake удаленно или как импортировать изображения?
В последнем случае есть ответ.
Для начала вам понадобится модель, чтобы сохранить изображения и, возможно, некоторые другие данные, например:
class Picture < ActiveRecord::Base
has_attached_file :image, :styles => {
:thumb => "100x100>",
:big => "500x500>"
}
end
. Вы можете создать простое задание rake в папке lib / tasks (вы должны назвать файл с расширением .rake.)
namespace :import do
desc "import all images from SOURCE_DIR folder"
task :images => :environment do
# get all images from given folder
Dir.glob(File.join(ENV["SOURCE_DIR"], "*")) do |file_path|
# create new model for every picture found and save it to db
open(file_path) do |f|
pict = Picture.new(:name => File.basename(file_path),
:image => f)
# a side affect of saving is that paperclip transformation will
# happen
pict.save!
end
# Move processed image somewhere else or just remove it. It is
# necessary as there is a risk of "double import"
#FileUtils.mv(file_path, "....")
#FileUtils.rm(file_path)
end
end
end
Затем вы можете вручную вызвать задачу rake из консоли, указав параметр SOURCE_DIR, который будет папкой на сервере (это может быть реальная папка или удаленный подключенный)
rake import:images SOURCE_DIR=~/my_images/to/be/imported
Если вы планируете запускать это автоматически, я бы порекомендовал вам перейти к гему Resque Scheduler.
Обновление: для простоты я специально исключил обработку исключений