尝试下载工作项(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,但无法访问它们

我做错了什么?
发布于 2021-07-13 21:10:10
我相信你应该用WritableStream来写。因为getAttachmentContent正在返回一个ReadableStream。下面是伪代码。它也许能行得通
let readableStream = await witApi.getAttachmentContent(attachmentId, fileName, projectId, true);
let writableStream = fs.createWriteStream('./WordDoc.docx');
readableStream.pipe(writableStream);https://stackoverflow.com/questions/68362948
复制相似问题