Ruby on Rails Cloudinary загрузить несколько изображений - PullRequest
0 голосов
/ 19 февраля 2019

В настоящее время я работаю над загрузкой нескольких изображений в Cloudinary как часть формы.Проблема в том, что Cloudinary Uploader позволяет загружать изображения только по одному за раз, поэтому пост-запрос очень медленный, когда я загружаю изображения следующим образом:

params[:photos].each do |_, photo|
  uploaded_photo = Cloudinary::Uploader.upload(photo.tempfile)
  photo = Photo.new(property: @property, public_id: uploaded_photo[:public_id.to_s])
  photo.save
end

Изображения связаны со свойством, поэтому их несколькоизображения очень важны.Я пытался запустить выгрузку параллельно с гемом Parallel, но это просто вызвало зависание моего сервера по неизвестной причине.

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

Как вы, ребята, порекомендовали бы загрузить несколько изображений в облачную систему как часть модели?

1 Ответ

0 голосов
/ 22 февраля 2019

Один из подходов для загрузки нескольких файлов в Cloudinary заключается в создании отдельных потоков:

photos = [] # Array of photos to upload
threads = []
number_of_threads = 3

chunk_size = photos.size/number_of_threads
chunks = photos.each_slice(chunk_size).to_a
chunks.each do |res|
    threads << Thread.new {     
        # Add code here to do the upload to Cloudinary
    }
end
threads.each { |thr| thr.join }

Вы можете сначала загрузить все изображения в Cloudinary, а затем обновить свою модель или обновить модель в конце каждогонить.Я не понимаю, почему там должна быть проблема.Я бы не советовал использовать несколько потоков, так как это может занять большую часть ресурсов на вашем сервере, если у вас есть много пользователей, загружающих контент одновременно.Кроме того, сайт Cloudinary рекомендует использовать плагин jQuery для нескольких загрузок файлов в соответствии с документами Ruby SDK (https://cloudinary.com/documentation/rails_image_and_video_upload#additional_jquery_library_features).

).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...