PHP /tmp 文件在请求过程中消失 - 有时
PHP /tmp files disappear in the middle of request - sometimes
所以我有一个 API 使用 php 7.2 构建,带有 nginx 和 php-fpm 用于上传文件。
上传文件后,在将文件移动到挂载的 NAS 之前,需要对 /tmp 中的文件执行几个步骤。
- 检查权限
- 扫描病毒
- 创建数据库记录
- 生成缩略图
....
最后复制到 NAS。
文件在前端的连续请求中一个一个上传。在 99.999% 的准时率下,一切顺利,但有时文件会在请求过程中消失。有时在第 2 步,有时在第 4 步,有时在第 5 步,没有任何规则。文件大小无关紧要,它同样会破坏 30kb 和 200mb 文件,并且限制以 GB 为单位。此外,与文件类型无关。它恰好对图像、zip、文档失败...
这是来自 Graylog 的单个请求的屏幕截图,确认 tmp 文件在请求开始时存在并在稍后消失。
我的猜测是您的 /tmp
文件夹中有某种清理脚本 运行,它会删除当时正在处理的任何文件。
例如,在我的 ubuntu 系统上有一个每天运行并清理文件夹的 cron。
我建议使用网络服务器用户拥有的不同文件夹。这应该可以消除 /tmp
出现问题的可能性。
所以我有一个 API 使用 php 7.2 构建,带有 nginx 和 php-fpm 用于上传文件。
上传文件后,在将文件移动到挂载的 NAS 之前,需要对 /tmp 中的文件执行几个步骤。
- 检查权限
- 扫描病毒
- 创建数据库记录
- 生成缩略图 .... 最后复制到 NAS。
文件在前端的连续请求中一个一个上传。在 99.999% 的准时率下,一切顺利,但有时文件会在请求过程中消失。有时在第 2 步,有时在第 4 步,有时在第 5 步,没有任何规则。文件大小无关紧要,它同样会破坏 30kb 和 200mb 文件,并且限制以 GB 为单位。此外,与文件类型无关。它恰好对图像、zip、文档失败...
这是来自 Graylog 的单个请求的屏幕截图,确认 tmp 文件在请求开始时存在并在稍后消失。
我的猜测是您的 /tmp
文件夹中有某种清理脚本 运行,它会删除当时正在处理的任何文件。
例如,在我的 ubuntu 系统上有一个每天运行并清理文件夹的 cron。
我建议使用网络服务器用户拥有的不同文件夹。这应该可以消除 /tmp
出现问题的可能性。