从200个容器中下载1个blob

时间:2017-08-17 15:08:11

标签: node.js azure typescript blob azure-storage-blobs

我有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

0 个答案:

没有答案