使用内容配置作为文件名下载 Node.js 文件

2024-02-24

我正在使用 Request 模块下载文件,但是当文件名必须来自“Content-Disposition”标头时,我不太确定如何将响应传输到输出流。所以基本上,我需要读取响应直到找到标头,然后将其余部分通过管道传输到该文件名。

这些示例显示如下:

request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'));

我想做的地方(伪代码):

var req = request('http://example.com/download_latest_version?token=XXX');
var filename = req.response.headers['Content-Disposition'];

req.pipe(fs.createWriteStream(filename));

我可以使用请求回调获取文件名:

request(url, function(err, res, body) {
 // get res headers here
});

但这是否会抵消使用管道而不将下载的文件加载到内存中的好处?


我正在从 yahoo 请求一张图片,但它没有使用content-disposition标题,但我正在提取date and content-type用于构造文件名的标头。这似乎与您想要做的事情足够接近......

var request = require('request'),
fs = require('fs');

var url2 = 'http://l4.yimg.com/nn/fp/rsz/112113/images/smush/aaroncarter_635x250_1385060042.jpg';

var r = request(url2);

r.on('response',  function (res) {
  res.pipe(fs.createWriteStream('./' + res.headers.date + '.' + res.headers['content-type'].split('/')[1]));

});

请忽略我的图像选择:)

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

使用内容配置作为文件名下载 Node.js 文件 的相关文章

  • NPM 无法安装依赖项 - 尝试解锁尚未锁定的内容

    我一直在尝试在我的 package json 文件上运行 npm install 但遇到了很多麻烦 我的所有依赖项上一直显示 错误 尝试解锁尚未锁定的 XXX 这是其中之一 Error Attempt to unlock tbd 0 6 4
  • 使用 MongoDB Atlas 时 mongo-go-driver 因服务器选择超时而失败

    去版本 1 12 5 我有这个使用 node js mongo 驱动程序的代码 const MongoClient require mongodb MongoClient const uri process env MONGO HOST d
  • Nodejs + mongodb:如何查询 $ref 字段?

    我将 MongoDB 与 Nodejs REST 服务一起使用 该服务公开了存储在其中的数据 我有一个关于如何查询使用 ref 的数据的问题 这是一个对象的示例 其中包含对花药集合中另一个对象 详细信息 的引用 id ObjectId 59
  • 快递+护照+会话。为每个页面加载执行查询

    我正在使用 Express 4 2 0 和 Passport 0 2 0 我使用的express session中间件是1 2 1 我对节点身份验证比较陌生 所以请耐心等待 我注意到 对于每个页面加载 护照正在执行数据库请求 Executi
  • readFile() 和 readFileSync() 之间的区别

    以下代码将index html 的内容 仅包含文本hello world 输出到浏览器 然而 当我更换readFile with readFileSync 请求超时 我缺少什么 是否需要不同类型的缓冲区 我使用的是node 0 61 和ex
  • 将 AngularJS 应用程序部署到普通 Apache HTTP 服务器是一种常见的选择吗?

    我很好奇 AngularJS 应用程序通常部署到什么样的服务器上 Google 没有给出令人满意的答案 特别是 在我看来 AngularJS 应用程序只是静态文件的集合 因此在生产中将这样的应用程序部署到普通 Apache HTTP 服务器
  • 枚举nodejs中的系统驱动器

    有没有办法检索计算机上所有逻辑驱动器的驱动器名称 我查看了 fs api 但从那里我只能枚举给定目录的文件和目录 我不确定 驱动器名称 是什么意思 如果您的意思是以下形式的驱动器 PhysicalDriveN 我遇到了同样的问题并实现了这个
  • 如何在 NodeJS 中使用 PhantomJS 模拟鼠标悬停或在页面上运行 JS 功能

    NodeJS PhantomJS 使用 Cheerio 进行内容解析 需要解析包含动态加载的div 提示 的网页 该事件可以在许多表 td 上 这是一个示例 当我将鼠标悬停在特定的 td 上时 我看到这个带有数据的橙色块 它动态加载了函数
  • socket.io 服务器的 Node.js 客户端

    我有一个正在运行的 socket io 服务器和一个带有 socket io js 客户端的匹配网页 一切正常 但是 我想知道是否可以在另一台机器上运行一个单独的 node js 应用程序 该应用程序将充当客户端并连接到提到的 socket
  • 使用sequelize 根据express.js 中的路由更改数据库连接

    是否可以更改数据库连接sequelize取决于路线 例如 用户可以访问网站中的 2 个不同安装 example com foo example com bar 登录后用户将被重定向到example com foo为了获得他们的所有任务foo
  • 如何使用 Node.js 在 Firebase 中注册用户?

    PROBLEM 0 用户是在 Firebase 的身份验证系统中创建的 我在 身份验证 选项卡中看到它 1 但没有对数据库进行任何更改 2 页面似乎无限加载 3 控制台仅记录 Started 1 CODE router post regis
  • 在 ExpressJS 中通过管道传送远程文件

    我想读取远程图像并显示它 我可以保存文件 但无法正确显示代码 理想情况下 我只想直接传递文件而不进行处理 不确定是否需要 tmp 文件步骤 此代码不显示任何内容 没有错误 我也尝试了 res pipe response var url ht
  • 如何使用restify上传文件

    我正在尝试使用 Restify 模块将图像文件上传到 Rest 服务器 更具体地说是 Confluence 但出现断言错误 我不确定我是否使用正确的方法将文件上传到 REST 服务器 有人能指出我正确的方向吗 这是我的尝试 var rest
  • 从字符串中删除货币符号并使用 Javascript 中的单行转换为数字

    我下面有一个字符串 它是以英镑为单位的价格 我想删除货币符号 然后将其转换为我可以用来与另一个值进行比较的数字 价格 例如 X gt Y 14 50 我之前已将字符串转换为用于货币的数字 var priceNum parseFloat pr
  • 在 ExpressJS 中为特定路由链接多个中间件

    我只想验证一些东西 但无法在 Express 文档或在线中找到与此相关的任何内容 尽管我知道这是一个功能 我可以测试一下 但我真的没有一个好的模板 并且希望听到社区的意见 如果我像这样在express中定义一条路线 app get func
  • 设计 Javascript 前端 <-> C++ 后端通信

    在我最近的将来 我将不得不制作一个具有 C 后端和 Web 前端的系统 要求 目前 我对此了解不多 我认为前端将触发数据传输 而不是后端 所以不需要类似 Comet 的东西 由于在该领域的经验可能很少 我非常感谢您对我所做的设计决策的评论
  • 垃圾收集器不适用于 NodeJS / Chrome 中的类型化数组

    我最初将其记录为原项目中的一个问题 https github com nodejs help issues 3590 它立即转移到帮助主题 没有很好的解释 所以现在我想在这里提问 如果我们在 NodeJS v14 v16 v17 中运行以下
  • 从活动目录读取objectGUID

    我正在尝试使用 node js 从 AD 获取信息 我试过了activedirectory and ldapauth fork一般来说 代码可以工作 但如果我需要一些octetstring数据如objectGUID 我在对象中看到了垃圾字符
  • Typescript 编译错误:类型“typeof e”上不存在属性“bodyParser”

    我想在我的节点 express 环境中使用打字稿 托管在 Cloud 9 ide 中 我在尝试让编译器编译 app ts 时遇到问题 它出现了几个错误 其中属性 bodyParser 在类型 typeof e 上不存在就是其中之一 我在应用
  • 定时器内嵌套异步等待 - 不返回所需的值

    我必须使用 Mocha 和 chai 测试来测试端点的响应 下面是相同的代码 async function getData userId let response let interval setInterval async gt resp

随机推荐

  • Django:添加之前检查对象是否已经存在

    如何检查对象是否已存在 并仅在存在时添加它not已经存在 这是代码 如果 follow role 已经存在 我不想在数据库中添加两次 我首先要如何检查 也许可以使用 get 但是如果 get 没有返回任何内容 Django 会抱怨吗 cur
  • 有“pip bundle”的不错的替代品吗?

    I use pip bundle对于我的生产系统 今天我收到了以下令人沮丧的消息 Due to lack of interest and maintenance pip bundle and support for installing f
  • Ubuntu 10.04 64 位上的 Android 开发使用哪个 JDK?

    Ubuntu 10 04 64 位作为 Android 开发环境看起来很有前途 我现在已经启动并运行了它 但我陷入了以下决策点 Synaptic 包管理器有 默认jdk 标准 Java 或 Java 兼容开发套件 sun com 有两个 J
  • C# 类型系统健全且可判定吗?

    我知道Java的类型系统是不健全的 它无法对语义上合法的构造进行类型检查 并且无法确定 它无法对某些构造进行类型检查 例如 如果您将以下代码片段复制 粘贴到类中并编译它 编译器将崩溃并显示StackOverflowException 多么贴
  • 当我使用“pip install mysql-connector”时,“无法找到 Protobuf include 目录”

    当我尝试使用 pip install mysql connector 加载时出现此错误 我也尝试过 pip install Protobuf 但没有解决方案 Python architecture 64 bit Python ARCH 64
  • React-native:node_modules\@react-native-community\masked-view 中缺少 index.js 文件

    我在构建反应本机应用程序时收到以下错误 react native community masked view and react navigation stack是最新的 但不确定为什么在构建时没有解决这个包 error Error Whi
  • 如何使用 matplotlib/python 绘制 ROC 曲线 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想绘制一条 ROC 曲线python with matplotlib并想像这样展示它 假设我们有 0 0 到 1 0 的预测y sc
  • 静态存储持续时间初始化

    在 C 中 静态存储持续时间对象以未指定的顺序初始化 同一编译单元中的除外 代码如下 include
  • jQuery Mobile 谷歌通用分析

    我很高兴使用这个最佳实践http roughlybrilliant com jquery mobile best practices 7 http roughlybrilliant com jquery mobile best practi
  • 定时器中断是否独立于系统处于内核模式还是用户模式?

    在Linux单处理器系统中 定时器中断是否与系统处于内核模式还是用户模式无关 当系统处于内核模式时 定时器中断有什么不同的行为吗 简单的答案是 硬件时钟中断服务例程的执行和动态定时器处理程序的调度都不受硬件时钟中断之前系统所处模式的影响 原
  • 如何观察服务类中的实时数据

    我想将从 API 获得的一些记录插入到我的数据库中 我正在使用服务类来执行此过程 我试图在服务类中使用实时数据的概念 但它要求我的服务类是生命周期所有者 我一直在思考如何让我的服务类观察者实时数据的变化 任何帮助都会很好 如果您的服务不应受
  • Haskell 中类似 OO 的接口实现

    尽管有这个标题 我不会仅仅询问 OO 世界和 Haskell 之间的翻译 但我想不出更好的标题 此讨论类似于但不等于this one https stackoverflow com questions 5474171 oo interfac
  • 按位运算如何提高 Asm.js 的性能?

    在 Asm js 定义的第一行有一个基于 Asm js 的代码示例 它解释了按位运算有助于获得更快的 JS 代码 HEAP32 p gt gt 2 0 or x y 0 我的问题是 这个操作如何提高性能 在 Asm js 或 Emscrip
  • Drools 知识库 已弃用

    我正在将 Drools 规则引擎集成到我的应用程序中 我发现的 99 的入门示例如下 KnowledgeBuilder kbuilder KnowledgeBuilderFactory newKnowledgeBuilder kbuilde
  • 如何验证 WTForms 中的日期字段

    在我的 Flask 应用程序中 我有一个 WTForm 其中有两个日期选择器 分别用于 开始日期 和 结束日期 验证 结束日期 不早于 开始日期 的最佳方法是什么 from flask wtf import FlaskForm from w
  • .NET 自定义事件组织帮助

    作为 C 的新手 我最近一直在研究自定义事件 虽然我认为我现在了解设置自定义事件所需的基本部分 但我无法确定where每件作品都属于 具体来说 这就是我正在尝试做的事情 我有一个表示内部数据结构布局的树控件 当数据在树中重新排列 通过拖放
  • 傅立叶级数数据与 numpy 的拟合:fft 与编码

    假设我有一些数据 y 我想对其进行傅立叶级数拟合 对此post https stackoverflow com questions 4258106 how to calculate a fourier series in numpy 解决方
  • HttpClient 不从 CookieContainer 发送 cookie

    我正在使用 Visual Studio 2012 开发带有 WPF NET 4 0 客户端的 ASP WebAPI ASP MVC 4 应用程序 客户端需要登录到服务器 我使用带有身份验证 cookie 的 FormsAuthenticat
  • MS Access 子表单在表单视图中带有#Error 字段

    微软访问 2003 我在子表单后面有一个查询 其中有如下 sql 语句 SELECT ClientTotalInvoiceLineItems CDate GetWeekEnding WeekEnding1 WeekEnding2 WeekE
  • 使用内容配置作为文件名下载 Node.js 文件

    我正在使用 Request 模块下载文件 但是当文件名必须来自 Content Disposition 标头时 我不太确定如何将响应传输到输出流 所以基本上 我需要读取响应直到找到标头 然后将其余部分通过管道传输到该文件名 这些示例显示如下