我正在从10台服务器下载一个文件块(块大小为600),如何更改下面的代码以流式传输响应,例如,以便它从第一台服务器的响应中读取60个字节,然后读取60个字节从第二台服务器的响应,直到我得到10。我想简化此过程。
现在我的代码从第一个服务器获取600字节并放入文件,然后再获取下一个600字节并追加,依此类推,但是我想要的是获取第一个600字节但仅读取前60个字节,然后从第二个服务器响应读取60bytes,依此类推。
for (a=0; a< array.length; a++){
var remainder = a%4
var uri = urls[remainder]+'/v1/file/download/'+'?path='+filePath
console.log(uri)
if ( a== partNum){
if( a==10 && partNum ==10){
break;
}
await new Promise(function (resolve, reject) {
request.get(uri
, function (error, response, body) {
}
)
.on('data', function(data,error) {
if (error){
reject(error)
} else {
console.log('decoded chunk: ',data.length)
}
// decompressed data as it is received
})
.on('response', function(response) {
// unmodified http.IncomingMessage object
response.on('data', function(data) {
// compressed data as it is received
console.log('received ' + data.length + ' bytes of compressed data')
})
});
});
} else {
console.log("handle error case")
}
}