You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中如何从Readable流获取路径?(含S3测试场景)

从S3 PutObjectCommandInput的Readable流中获取文件路径(测试场景)

在使用aws_sdk_client_mock的测试场景中,你遇到的问题是:从PutObjectCommandInput拿到的Readable流调试时能看到path属性,但官方SDK类型定义没暴露这个字段,没法直接访问。

解决方法很直接,用类型断言扩展Readable的类型,让TypeScript允许访问这个隐含的path属性:

const putCall = s3Mock.call(1).args[0].input as PutObjectCommandInput;
// 用交叉类型把Readable和带path属性的类型合并
const readable = putCall.Body as Readable & { path?: string };
const path = readable?.path; // 这里就能拿到你要的/tmp/JbHO.csv了

补充说明

这个path属性其实是Node.js原生fs模块创建的Readable流(比如fs.createReadStream返回的实例)自带的字段,但AWS SDK的PutObjectCommandInput里对Body的类型定义只标注了通用的Readable,没包含这个特定属性,所以需要手动扩展类型。

测试场景里你明确知道这个流来自本地文件,所以用可选链(?.)处理就行,避免流不存在时的报错。

内容的提问来源于stack exchange,提问作者Interlated

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 06:02:38