我有200多个容器,我需要从每个容器中下载1个blob。如果我将循环下载每个blob,则需要花费很多时间。出于这个原因,我决定并行下载blob。
let testFunctions = [];
containers.array.forEach( container => {
testFunctions.push(
(callback) => {
that.blobService.getBlobToText(container, 'container/' + date, (error: any, blob: any) => {
if (blob!== null) {
callback(null, blob);
} else {
callback(error, null);
}
});
}
)
});
async.parallel(testFunctions, async (error, blobs) => {
//Todo
});
但是在一些请求之后我得到了这个错误:
{ Error: connect ETIMEDOUT 1.2.3.4:443
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1087:14)
code: 'ETIMEDOUT',
errno: 'ETIMEDOUT',
syscall: 'connect',
address: '1.2.3.4',
port: 443 } ,
你能帮助我解决这个问题吗?或者你知道另一种方法我怎样才能快速下载超过200个容器的blob?
P.S。我正在使用azure-storage V 2.3.0&的NodeJS