存储文件以供下载的最佳位置

时间:2015-09-02 11:11:22

标签: ruby-on-rails ruby

我有一个每周运行一次的脚本并创建一个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

1 个答案:

答案 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