3

我可以毫无问题地通过 Node/Express 将文件上传到 Azure blob 存储,但是找到了非常少的文档/如何下载文件的完整示例。我在教程页面上找到了这个,但没有任何运气:

blobSvc.getBlobToStream('mycontainer', 'myblob', fs.createWriteStream('output.txt'), function(error, result, response){
  if(!error){
    // blob retrieved
  }
});

有没有其他人使用 node.js/express 从 Azure blob 存储下载文件?您是否使用了 Azure 或其他方法(例如请求)。您能否分享如何从 Azure 获取文件并将其流式传输到文件夹?

4

2 回答 2

1

此处有关于将 Azure 存储 Blob 与 Node.js 结合使用的完整教程。该教程提到了 getBlobToLocalFile ,这听起来像是您可能正在寻找的东西。此方法的语法应该与 getBlobToStream 非常相似,但您将提供文件路径而不是流。

于 2015-12-18T00:16:28.033 回答
1

我正在创建一个下载 blob 文件夹(虚拟)并返回 zip 文件的函数。最简单的实现是使用getBlobToLocalFile将它们下载为文件,导出为 .zip,最后删除临时文件。 这可能不是最好的解决方案,但它更容易实现。 我知道这不是最有效的方法,但对我来说已经足够了。

第 1 步,获取 blob 列表:

 blobService.listBlobsSegmentedWithPrefix(
  containerName,
  prefix,
  null,
  { delimiter: "", maxResults: 100 },
  (err, result) => {
    if (err) {
      reject(err);
    } else {
      resolve(result.entries);
    }
  }
);

第二步,本地保存:

 blobs.map(blob => {
  blobService.getBlobToLocalFile(
    containerName,
    blob.name,
    `${baseDir}/${blob.name}`,
    (err, blob) => {
      if (err) {
        //handle error
      } else {
        count++;
        //do something after they all save
    }
  );
});
于 2019-09-24T20:54:43.140 回答