请教 Storage 使用 sftp 驱动上传大文件超时该如何解决?
Storage
使用 sftp
驱动上传大文件(35M)超时该如何解决?已经在filesystems.php
配置文件里设置了超时时间,但是上传后的文件不完整.
[
'driver' => 'sftp',
'host' => env('CHANGYIN1_SFTP_HOST'),
'port' => (int) env('CHANGYIN_SFTP_PORT', 0),
'username' => env('CHANGYIN_SFTP_USERNAME'),
'password' => env('CHANGYIN_SFTP_PASSWORD'),
'maxTries' => 4,
'timeout' => 600,
],
三个方案:
如果文件较大的话,建议用第三种,文件不用再服务器上中转了,前端可以更好的控制整个上传流程,包括实时文件上传进度,文件分片上传等等!
服务器上行速率太低了,如果要存储到本地服务器,不升级带宽,用什么方案都很慢,可以的话,还是上OSS,一般前端的宽带配置比较高,可以前端来上传文件到OSS,业务服务器不要干这种耗费流量的业务,拆出去单独处理。
阿里云OSS
分片【分小块】上传上去 同时可以并发上传
服务器往 sftp上传时 使用二进制上传,这是虚拟主机时代就有的问题,FTP上传文件不使用二进制上传或多或少都有点问题。
@Larva 代码里如何设置二进制上传?文件小上传没问题,文件大上传的文件就不完整。
开台内网服务器,然后由内网服务上传,不影响主服务
如果分块上传和增加超时时间还是会超时文件不全,就应该联系对方,问一下是不是他那边服务器设置了比较短的超时时间导制