JJ *_*eck 4 ruby-on-rails sendfile
我正在file.txt使用我的Rails控制器发送文件send_file,然后删除包含它的文件夹.
send_file("#{Rails.root}/public/folder/file.txt")
FileUtils.remove_dir "#{Rails.root}/public/folder", true
Run Code Online (Sandbox Code Playgroud)
当我这样做时,file.txt被发送和删除.但是,folder没有被删除.但如果我删除该send_file行,folder则将被删除.
如何删除它folder?
编辑:有趣的是,我发现里面folder有一个隐藏文件.__afs2B0C,可能会阻止删除.我不知道这个文件是如何创建的!该文件仅在大约15分钟后才会消失.
EDIT2:我试过检查临时文件的内容vi,但这是不可读的乱码.当我只删除该send_file行时,该文件夹被正确删除.当我只删除该FileUtils.remove_dir行时,该文件夹不包含临时文件.
你确定send_file在删除目录时仍然没有发送文件,如果使用X-SendFile它可能是异步的吗?这会在尝试删除目录时导致错误.
因此,您应该将此删除操作排队,或者稍后使用清扫程序进行排队,而不是在将文件发送到流后直接执行此操作.
我不完全清楚您要发送的文件,因此包含文件路径的实际示例,文件类型以及如何在您的问题中创建它是有用的.
可能的调试帮助:
执行以下操作时登录并监视该文件夹:
鉴于sendfile可能仍在通过Web服务器发送(对于大文件)(x-send-file现在是默认值),当您尝试删除时,我会尝试查看延迟解决方案.
可能的解决方案:
| 归档时间: |
|
| 查看次数: |
4024 次 |
| 最近记录: |