Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

你好,在上传文件过程中出现 "写文件失败" 问题,是否需要某些配置支持? #94

Open
Umbrella-J opened this issue May 26, 2020 · 7 comments

Comments

@Umbrella-J
Copy link

在上传上百兆文件时,windows 环境测试没有问题,但在 linux 上,上传中途会出现 “写文件失败”,记录到的异常如下:
[2020-05-26 19:54:28] local.INFO: params: {"resource_ext":"wav","chunk_total":"643","chunk_index":"81","resource_temp_basename":"1590494060728318","group":"file","group_subdir":"202005","locale":"zh","resource_hash":"c714edb26be58b2cee794528d66ddf51","expires":"1584516038","signature":"34597f8bd5e8d632628a443d4b27f53ab8c872a4c4a6afe150d2603fa1eedeaf","resource_chunk":"[object] (Illuminate\\Http\\UploadedFile: /tmp/php5upMt8)"} [2020-05-26 19:54:28] local.INFO: fileSize:1000000 [2020-05-26 19:54:28] local.INFO: Exception:错误:写文件失败 path:aetherupload/file/202005/1590494060728318.wav.part [2020-05-26 19:54:29] local.ERROR: 错误:删除文件失败 {"exception":"[object] (Exception(code: 0): 错误:删除文件失败 at /data/www/v8_file/vendor/peinhu/aetherupload-laravel/src/PartialResource.php:59)
文件夹权限是正常的,小一点文件也可以正常上传,请问是服务器需要调整某些配置嘛?

@peinhu
Copy link
Owner

peinhu commented May 27, 2020

之前没人报过这个错误,linux测试是没问题的,我上传过4g的文件。
你这个情况比较诡异,不是在开始时报错,也不是在结束时报错,是中途报错,这阶段一般是不会报错的,估计是不是你服务器改了什么配置造成的?目前我无法复现你的情况,所以不太好排查。用一台新服务器安装全新的laravel和扩展包测试一下,如果还有这错误,才能归因于代码的问题。

@peinhu
Copy link
Owner

peinhu commented May 27, 2020

windows环境测试正常,其实已经可以证明代码没问题了,我估计还是你哪里修改了配置的原因。

@peinhu
Copy link
Owner

peinhu commented May 27, 2020

有一种可能是你是在本地上传,上传速度非常快,但服务器的内存又比较小,而linux的机制会在频繁读写磁盘的时候自动在内存中替你缓存文件,导致你最后内存被完全占满,所以写入失败,这个是我的猜测。

@peinhu
Copy link
Owner

peinhu commented May 27, 2020

根据上面的猜测,可以尝试把上传的分块大小加大,以此来减少文件读写频率,如果用的是nignx的话,具体是将nginx.conf中的client_max_body_size设置为4m,将php.ini中的post_max_size设置为5M、upload_max_filesize设置为4M,然后重启php-fpm和nginx服务,最后将aetherupload.php中的chunk_size设置为4000000。

@phpervip
Copy link

我也遇到上传失败的问题了,
哈希100%
错误:上传失败
POST http://域名/aetherupload/preprocess 502 (Bad Gateway)
即使是很小只2k的文件也会。

@peinhu
Copy link
Owner

peinhu commented Jul 15, 2020

@phpervip
你这情况应该跟他不一样,是开始上传时候就出错,检查一下上传目录storage/app以及子文件夹的目录权限是否是755,另外,laravel版本号提供一下?新出的版本是可能有不兼容改动的,我在本地测试下。

@Umbrella-J
Copy link
Author

@peinhu 感谢回复,确实不是程序的问题,是我们自己机器上有另外的进程影响了上传。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants