我正在尝试使用Node Js服务器下载一个zip文件。
我的问题陈述如下:
我有 CDN ,其中存在实际文件。我正在从CDN中读取文件流,然后使用存档模块。
我正在用管道将其响应。我正在将其管道两次。
首先从CDN读取文件并将流提供给存档器
将prodct.zip文件放入响应中。
此代码客户端的网络连接很快时有效。
如果速度太慢,它将无法下载完整文件,也不会下载损坏的zip文件。
下面是我的代码:
app.get('/frontEndGetFile/', function(req,res)
{
var archive = archiver('zip');
archive.store = true;
var header = {
"Content-disposition": 'attachment;filename=sampleDownload.zip',
"Transfer-Encoding": "chunked",
"Content-Transfer-Encoding": "binary"
};
res.writeHead(200, header);
archive.pipe(res);
var fileArr=['Postman-win64-6.1.2-Setup.exe','Microsoft.DataTransfer.Sql.dll','TEST 5GB different types of files (1).zip','Software.zip'];
async.eachSeries(fileArr, function(fileObj, outCb)
{
const stream = request("http://CDN-URL/getFile?file="+fileObj);
archive.append(stream, { name: "parentDirectory" + '/'+fileObj });
stream.on('end',function(){
if(fileObj === fileArr[fileArr.length-1]){archive.finalize();}
outCb();
}) }); });
任何帮助将不胜感激。