Rails - процесс Ruby спит, когда открывается файл URL и не может его завершить или уничтожить - PullRequest
0 голосов
/ 02 декабря 2018

Я пытаюсь открыть URL-адрес изображения из Activestorage, но ruby ​​засыпает, и последний элемент в журнале консоли:

Started GET "/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--bfec3dc0d0745e49d7daa9faac7abdeaa46418c3/f2392748480.png" for 127.0.0.1 at 2018-12-02 14:45:01 -0600

, и когда он заканчивается, ошибка: Net::ReadTimeout

Это не произошло в первый раз, но после этого это происходит каждый раз, когда я запускаю метод.

Мой метод:

def upload_photos
  require 'open-uri'
  page_api = Koala::Facebook::API.new(params[:access_token])

  image_urls = params[:images].map do |image|
    open("#{request.protocol}#{request.host_with_port}#{image[:url]}") do |f|
      page_api.put_picture(f, f.content_type, { "caption" => image[:filename] }, params[:id])
    end
  end

  render json: { image_urls: image_urls, album_id: params }
end

Он работает в первый раз, но не после этого.

ОБНОВЛЕНИЕ: это прекрасно работает с внешними URL-адресами, но не с activestorage

Это связано с тем, что Ruby занят открытием файла, а при попытке получить доступ к URL-адресу нетвозможность ответить на это ходатайство, потому что он открывает файл, это все равно, что пытаться посмотреть на свою собственную задницу в зеркале.

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