首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用node js和azure- DevOps -node-api下载Azure devops工作项附件

使用node js和azure- DevOps -node-api下载Azure devops工作项附件
EN

Stack Overflow用户
提问于 2021-07-13 21:01:19
回答 1查看 101关注 0票数 1

尝试下载工作项(Azure DevOps)的附件时卡住。

我使用node.js 'azure-devops-node- API‘客户端(https://www.npmjs.com/package/azure-devops-node-api)与ADO进行交互。我使用WorkItemTracking client (Wit)获得某个workItem:

let workItem = await witApi.getWorkItem(1234, undefined, undefined, WorkItemExpand.All);

let attachment = await witApi.getAttachmentContent(attachmentId, fileName, projectId, true);

文档说明getAttachmentContent方法下载了一个附件(https://github.com/microsoft/azure-devops-node-api/blob/ff820b2dd0c9a09cf09e64e94d3f95818a77249d/api/WorkItemTrackingApi.ts#L392),作为返回值,我得到了一个ReadableStream,我试图使用标准的fs模块将其写入文件:

fs.writeFile('WordDoc.docx', attachment, function (err) {if (err) return console.log(err);});

文件已创建,但为空。在调试过程中,我还看到附件变量的类型是ReadableStream,但里面有很多属性和值,其中有一个缓冲区,我实际上想提取并传递给fs.writeFile,但无法访问它们

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-13 21:10:10

我相信你应该用WritableStream来写。因为getAttachmentContent正在返回一个ReadableStream。下面是伪代码。它也许能行得通

代码语言:javascript
复制
let readableStream = await witApi.getAttachmentContent(attachmentId, fileName, projectId, true);
let writableStream = fs.createWriteStream('./WordDoc.docx');
readableStream.pipe(writableStream);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68362948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档