Создание файлов в Heroku Production

#ruby-on-rails #ruby

#ruby-on-rails #ruby

Вопрос:

Я уже довольно давно пытаюсь разобраться с проблемой. Я использую Rails 5, и мой сайт находится в процессе разработки. Я пытаюсь найти способ создать файл на рабочем столе пользователя или в любом месте, доступном пользователю локально. Приведенный ниже код отлично работает на localhost, но по какой-то странной причине я, похоже, могу заставить его работать в моем развернутом приложении heroku.

Я также пытался publicsynonyms.txt как путь, который включен в пакет приложения, а также работает на localhost, но та же проблема сохраняется в моем развернутом приложении heroku.

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

 <%
  my_file = File.open(ENV['HOME'] "/Desktop/synonyms.txt", "w")
  @solrs.each do |solr|
    my_file.write(solr.disease.to_s   ","   solr.synonym.to_s   "n") 
   end
   my_file.close()
%>
  

Есть предложения по устранению этой проблемы? Спасибо.

Комментарии:

1. Как вы сказали, файловая система Heroku эфемерна, поэтому любые изменения в файловой системе во время работы dyno продолжаются только до тех пор, пока этот dyno не будет выключен или перезапущен. Вы можете прочитать больше здесь и проверить документацию, например, по обработке загрузок в s3. help.heroku.com/K1PPS2WM /…

2. Спасибо Хосе! Да, я понимаю это, но чего я не понимаю, так это того, что я не пытаюсь создать файл в каталоге приложения heroku. Я пытаюсь создать файл в пользовательской системе (локальной), нет ли способа обойти это? Спасибо

3. Не думаю, что вы можете создать файл в файловой системе пользователя. Это работает для вас в local, потому что приложение запущено в «локальной файловой системе», но это не тот случай, когда вы развертываете приложение в heroku.

4. Ну Ладно! :((( — спасибо тебе

5. Привет, просто краткое дополнение к моему предыдущему вопросу. Есть ли способ сохранить файл временно в каталоге приложения heroku без перезапуска dyno. Как и в приведенном выше коде, он даже не создает временный файл (с указанием пути publicsynonyms.txt )? Есть идеи?