1

Я создаю веб-приложение для фотографий. У меня есть доступ к ведро amazon s3, которое содержит все фотографии, которые мне нужны для создания моего приложения. До сих пор у меня все правильно настроено с AWS и Carrierwave для загрузки изображений в облако. Тем не менее, я испытываю трудное время, пытаясь сделать обратное. Я хочу загрузить файлы из s3 и создать объекты Person в моей базе данных. Я создал пользовательскую задачу rake, которая пытается выполнить такую ​​задачу. Вот реки задача:Как добавить изображение на Carrierwave с помощью ActiveRecord?

desc 'Populate database with person s3 photos' 
task migrate_s3_photos_to_db: :environment do 
    s3 = Aws::S3::Resource.new(region: ENV['AWS_REGION'], credentials: Aws::Credentials.new(ENV["AWS_SES_ACCESS_KEY"], ENV['AWS_SES_SECRET_ACCESS_Key']) 
    s3.bucket(ENV['S3_BUCKET']).objects.each do |person| 
    name = person.key.gsub('.jpg', '').gsub('_',' ') 
    email = "#{name.scan(/\w+/)[0][0].downcase}" + "#{name.scan(/\w+/)[1].downcase}" + "@gmail.com" 

    ===================Problem========================== 
    Person.create(name: name, email: email, avatar: ?????????) 
    end 
end 

Проблема с вышеуказанной задачей является то, что я не уверен, что я должен поместить в поле аватара. Я пробовал person.key, который приведет к строке имени изображения (Andy Johnson.jpg). Однако это не работает.

Я также попытался создать PersonAvatarUploader, который предоставил несущую, но я не уверен, что это путь. Кто-нибудь сталкивался с такой проблемой раньше?

ответ

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