Blob downloadToFile() 不下载大文件 Nodejs

2023-12-12

我在我的项目中实现了 ** azure blob/storage** 。它在较小的文件上运行良好,但当我尝试下载超过 40 MB 的文件时。它不会从 blob.downlaodToFile() 返回 这是我的代码。Api call

exports.downloadSingle = function(req,res){
  downloadService.downloadSingleFile(req.params.id).then(function (result) {
    res.send(result);
  })
}

下载服务

    var filesLocalLinks = [];
    const request = require('request-promise');
    const fs = require('fs');
    var download = require('download-file')
    let promise = new Promise((resolve, reject) => {
      filemodel.findOne({_id: id,cancelled: false}).exec(function(error,result){
        if(error){
          resolve(error);
        }else{
          
              blobDownload.downloadFile(result.blobName,result.containerName).then(function(blobResponse){
                var filename = path.resolve(__dirname+'/../services/uploads/'+result.fileName);
                   filename = filename.replace('/myProject','');
                   filename = process.env.BASE_URL+'/myProject/services'+filename.split('/services')[1];
                   resolve({file: filename, filename: result.originalname})
              }).catch(function(error){
                reject(error);
              })
        }
      })

    })
    let result =await promise;
    return {file: result.file,filename: result.filename };
  }

斑点服务

    let promise = new Promise(async (resolve, reject) => {
    const account = process.env.BLOB_ACCOUNT;
    const accountKey = process.env.BLOB_ACCOUNT_KEY;
    const sharedKeyCredential = new StorageSharedKeyCredential(account, accountKey);
    const blobServiceClient = new BlobServiceClient(
      `https://${account}.blob.core.windows.net`,
      sharedKeyCredential
    );
    const containerClient = blobServiceClient.getContainerClient(containerName);
    const blockBlobClient = containerClient.getBlockBlobClient(blobName);
    const blobClient = containerClient.getBlobClient(blobName);
    var blobResponse = await blobClient.downloadToFile(blobName);
    resolve(blobResponse)
    })
    let result =await promise;
    return result;

  }

在 blob 服务中,此行花费太多时间导致页面响应页面无法正常工作 var blobResponse = await blobClient.downloadToFile(blobName);谁能帮我


基本上代码的流程是,首先将文件下载到我们的服务器目录,然后用户可以下载它。我发现代码工作正常,但问题出在我们服务器的内存上,当我们增加内存时,问题就解决了。但我花了两天时间才弄清楚

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Blob downloadToFile() 不下载大文件 Nodejs 的相关文章

随机推荐

  • ASP Web API 帮助页面 - 其他页面的链接

    我正在使用 Web API 帮助页面 并且希望能够包含其他方法的链接 我已经看到从Web API 2 帮助页面是否不处理 XML 文档标签 不支持使用 有没有比在文档中编写我自己的 链接并使用中描述的方法更好的选择Web Api 帮助页面
  • 没有主键列的数据表合并

    如何合并目标表包含主键列而源表不包含的表 DataSet enforceConstraints 设置为 false 然后它将合并表 但是当在目标表上执行 GetChanges 时 会发生异常 Dest table contains prim
  • 将一些标签放入

    这是我的代码
  • 哈希映射、哈希集、哈希字典有什么区别?

    有人可以解释一下以下结构之间的区别 Hash Map 哈希表 哈希集 以及 哈希字典 HashMap HashTable 和 HashDictionary 都是字典 将唯一的无序键映射到相应的值 使用哈希码实现 HashSet 表示唯一的
  • 触发对同一个表的 UPDATE 和 SELECT - 错误 1235 (42000)

    我正在尝试实施具有多个递增列的表 不会重用已删除的列值 这篇文章被标记为已经被回答MYSQL表的子集内如何自动递增但是 引用的帖子不符合规定的要求 因为它允许子集增量键被复制 在第一篇文章中 给出了评论 创建一个表来存储每种类型的最后 AI
  • 如何创建带有图标的 C++ 按钮

    我正在尝试制作一个自定义退出按钮 并且我已经在 Photoshop 中为该按钮创建了一个自定义图形 我有此代码定义的按钮 button CreateWindow L BUTTON L WS VISIBLE WS CHILDWINDOW 40
  • iOS 使用 UIActivityViewController 将 GIF 分享到 Messenger

    我正在尝试使用共享不同类型的图像UIActivityViewController到 Facebook Messenger 我在共享图像 png 时没有遇到任何问题 但我无法发送 gif 图像 gif 它给出错误 无法加载内容 我将图像转换为
  • 在 C# 中解析用引号引起来的 CSV 文件

    我见过很多解析 CSV 文件的示例 但这是一种烦人的文件 那么如何解析这种 CSV 1 1 2 2010 样本 adasdad asdada 我在门上大便 臭 所以我该死 AK 在大多数情况下 最好的答案可能是 Jim Mischel 的
  • 如何比较两个列表中的项目 Python 3.3

    我尝试使用cmp list1 list2 了解 Python 3 3 不再支持它 我尝试过许多其他复杂的方法 但没有一个有效 我有两个列表 其中都只包含单词 我希望它检查两个列表中有多少单词 并返回有多少单词 您可以使用以下方法找到集合交集
  • SVN 提交期间互联网连接断开

    在对远程 SVN 存储库进行大量提交期间 如果互联网连接断开 我是否必须再次开始提交 或者它会从中断的地方 继续 吗 Thanks Ojo Subversion 提交是一个原子事务 要么一切都承诺 要么什么都不承诺 您必须再次开始提交
  • 将局部变量设置为函数而不是使用全局变量来优化函数

    在 itertools 模块的文档中我发现了这个评论 def dotproduct vec1 vec2 return sum imap operator mul vec1 vec2 请注意 上述许多配方可以通过替换全局来优化 使用定义为默认
  • 确定 MPMovies 控制器比特率

    有没有办法确定 MPMovieController 正在播放的流的比特率 我正在 iOS 上使用 Objective C 进行编程 可以从event中获取指示的码率 这是按照m3u8的码流的码率 为了计算实际比特率 我将 event num
  • 使用 Javascript 从浏览器截屏?

    我想这是一个奇怪的问题 答案很可能是不可能的 因为这代表着安全漏洞 但我正在寻找一种方法 如果有的话 来获取浏览器内内容的屏幕转储 我不需要整个窗口 但实际上只需要转储标签的渲染状态 它需要跨平台和跨浏览器兼容 这还不能在纯 JavaScr
  • 在 iis 6 和 asp.net mvc 3 中找不到默认角色提供程序

    我正在 ii6 上启动 asp net mvc 3 应用程序 不使用成员资格或角色提供者 我通过手动创建授权cookie来实现授权 并在global asax中处理它 首先 出现了这个错误 创建 App Data 子目录时访问被拒绝 描述
  • ASP.NET 请求是否始终在同一线程上开始请求和结束请求?

    对于来自客户端的给定 HTTP 请求 ASP NET HttpApplication 的 BeginRequest 和 EndRequest 是否始终发生在完全相同的线程上 我问的原因是我看到一些非常奇怪的行为 其中 ThreadStati
  • MongoDB:如何正确地将集合从 MongoDB 导出到我的计算机?

    给定以下数据库和相关集合scows tasks 如何导出 2GB 用于存储目的以腾出空间 我一直在尝试使用各种方法来做到这一点 但没有一个奏效 mongoexport verbose db scows collection tasks ou
  • python readthedocs如何满足sip(或pyqt)的要求

    我想发布我的项目的文档https bitbucket org oaltun opn在 readthedocs org 中 构建失败 日志中显示不同的错误https readthedocs org builds opn 2247789 但第一
  • 如何旋转TextView?

    我想旋转 TextView 但无法获得正确的输出 我正进入 状态textView缺少一些文字 布局中
  • 将 IO 寄存器作为模板参数传递

    我想使用 IO 寄存器 静态内存地址 作为模板参数 问题是 寄存器通常被定义为扩展为类似于以下内容的宏 volatile uint8 t 11 0x20 我不知何故无法正确使用我的模板 我想编写如下代码 Foo
  • Blob downloadToFile() 不下载大文件 Nodejs

    我在我的项目中实现了 azure blob storage 它在较小的文件上运行良好 但当我尝试下载超过 40 MB 的文件时 它不会从 blob downlaodToFile 返回 这是我的代码 Api call exports down