我有一个每周运行一次的脚本并创建一个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
答案 0 :(得分:3)
如果文件是公开的,为什么不将它们存储在"#{Rails.root}/public/csv-files/#{@file_name}.csv"
。如果public
不可选,请将它们放在安全的地方。不在/tmp
中,系统可以删除它们。
/tmp
目录。阅读此讨论以获取更多信息https://askubuntu.com/questions/20783/how-is-the-tmp-directory-cleaned-up