File upload &引用;上传“;将文件放入缓冲区并停止rails,将所有上载保存到tmp目录中

File upload &引用;上传“;将文件放入缓冲区并停止rails,将所有上载保存到tmp目录中,file-upload,ruby-on-rails-4,buffer,File Upload,Ruby On Rails 4,Buffer,我正在考虑如何上传一个文件而不保存在tmp目录或其他任何地方。我只需要原始数据(比特),这样我就可以在缓冲区中使用它,并将其作为原始数据处理 问题是rails在上传文件时会自动将文件保存在临时目录中。我想停止这种行为。该文件何时从临时目录中删除 params看起来像这样 {“a_文件”=>},“提交”=>“保存测试”,“控制器”=>“测试”,“操作”=>“创建”} 如您所见,该文件保存在/var/folders/7n/uu mg6lwj1nx17qzlx9xrtvnm0000gn/T/Rac

我正在考虑如何上传一个文件而不保存在tmp目录或其他任何地方。我只需要原始数据(比特),这样我就可以在缓冲区中使用它,并将其作为原始数据处理

问题是rails在上传文件时会自动将文件保存在临时目录中。我想停止这种行为。该文件何时从临时目录中删除

params看起来像这样


{“a_文件”=>},“提交”=>“保存测试”,“控制器”=>“测试”,“操作”=>“创建”}

如您所见,该文件保存在
/var/folders/7n/uu mg6lwj1nx17qzlx9xrtvnm0000gn/T/RackMultipart20131228-5260-mpj993
中。文件实际上就在那里。我想停止这整个应用程序。例如,作为一个用户,如果我修改任何表单并在其中添加文件输入,我可以在文件系统中物理地保存任何文件。我非常确信我的unix系统以某种方式处理它,因此它是安全的,并且文件不会损坏任何东西。如果rails不“自动”做到这一点,我会睡得更好。我想自己处理:)


谢谢

是的,问题是当我将调试器放入控制器时,rails似乎会自动将其保存到临时目录中。我将更新服务器生成的问题不是tempfile以避免内存过多吗?确实是。ActionDispatch::Http::UploadedFile文档说,文件仅为请求保存在那里,然后文件被丢弃。我敢肯定rails会自动执行此操作,以防止DDOS攻击,因为攻击者可以发送比我的内存大的文件。我可以在我的http服务器上处理上传的大小限制,所以最好有一个选项来禁用这种行为。(似乎未实现此配置)。无论如何,谢谢你的讨论。是的,我说的服务器是指nginx/webrick/处理您请求的任何东西。我认为Rails无法处理存储临时文件。查看此帖子: