Проблема с доступом к изображениям, загруженным в heroku через приложение RoR - PullRequest
0 голосов
/ 07 июня 2019

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

uploaded_io = params[:recipe][:picture]                  
  File.open(Rails.root.join('recipe_images',uploaded_io.original_filename), 'wb') do |file|
  file.write(uploaded_io.read)
end

Это прекрасно работает в локальной среде разработки, однако, когда я загружаю приложение в Heroku и пытаюсь получить доступ к изображению, я получаю следующую ошибку:

(No such file or directory @ rb_sysopen - /app/recipe_images/logo.jpeg):

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

Для доступа к загруженному изображению я использую следующий код:

<%= image_tag("recipe_images/logo.jpeg"%>

Это снова работает в среде разработки, но не работает в производственном процессе, поскольку образ отсутствует.

Почему это не работает на Heroku?

1 Ответ

3 голосов
/ 07 июня 2019

Я не уверен, почему это не работает сразу после того, как вы примете изображение, но вам все равно не следует хранить загруженные изображения в локальной файловой системе Heroku. Эта файловая система эфемерна : любые изменения, которые вы вносите в нее, будут потеряны при следующем перезапуске вашего динамометра. Это происходит часто (хотя бы раз в день).

Вместо этого Heroku рекомендует использовать что-то вроде Amazon S3 для загрузки и предоставляет руководство для этого с Rails .

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