У меня есть скрипт, который работает один раз в неделю и создает файл CSV. Ссылка для загрузки отправляется по электронной почте, поэтому пользователи могут загрузить файл. Я в настоящее время храню файл в /tmp/
. Иногда это работает, но некоторые пользователи получают сообщение об ошибке и журналы показываютЛучшее место для загрузки файлов для скачивания
ActionController::MissingFile occurred in csv_downloads#download:
Cannot read file tmp/filename.csv
Что является лучшим способом хранения этих файлов? Вот часть текущего скрипта
csv_string = CSV.generate(write_headers: true, headers: HEADER) { |csv| write_data(csv) }
file = File.new(File.join(Dir.pwd, "/tmp/#{@file_name}.csv"), "w+")
file.write(csv_string)
file.close
file
Одна из проблем заключается в том, что похоже, что вы сохраняете в '/ tmp', а затем пытаетесь получить доступ к' tmp' (без /), который будет '<путь к вашему rails app>/tmp' –
@MaxWilliams Я думал, что это может быть изначально, но он работает для некоторых пользователей, и он работает при тестировании. Я думаю, что проблема с tmp/будет очищена до того, как пользователи смогут получить доступ к файлу. –