Я пытаюсь открыть 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-адресу нетвозможность ответить на это ходатайство, потому что он открывает файл, это все равно, что пытаться посмотреть на свою собственную задницу в зеркале.