使用KOA上传文件基本都是在描述图片等小文件的上传,小文件上传使用createWirteStream的方式完全没问题,如果文件是3~5GB的文件,使用这种方式,极容易中断,在express中有中间件multer和formidable使用,KOA框架中有没有好用的中间件或者好的方法上传大文件? 网上搜大部分都是使用以下方式,但是不适合GB级的文件上传 const upStream = fs.createWriteStream(filePath); reader.pipe(upStream);
中断不在于 stream,而在于请求超时了吧。 这么大的文件,应该直接 STS 方式上传 OSS,不要通过服务端中转
@atian25 非常感谢您的回答,你说的对,文件其实已经上传到服务器,只是请求页面无响应了。 另外你说的STS的方式,大文件的上传,是在前端用js就可以搞定了,而不需要经过后端的服务端是吗?因为在上传文件时候要记录上传文件的路径及名称,大小等属性,后期会根据文件内容在对不同的文件添加描述信息,准备把这些信息持久化记录,这种场景下,是在文件上传成功后在将文件的属性信息发送请求给服务端,将数据记录下来吗?或者有没有其他更好的方法对这些上传的文件进行管理呢?
可以看下文档:https://help.aliyun.com/document_detail/100624.html?spm=a2c4g.11186623.6.664.471c734aKpud2b
上传后获取地址,然后你再拿这个地址和其他信息,post 到你自己的服务器存储即可。
@atian25 感谢回答