点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
在我简单的CAP应用程序中,我想从第三方REST服务加载PNG文件并将其流式传输到FE应用程序。
这不应该涉及数据库。
应用程序中的最终要求是从第三方服务加载并显示动态生成的一次性qrcode。
这是我的代码示例。 请注意" image-service.js"文件,在该文件中,我有一个测试实现,可以从文件系统中读取png,这是工作示例。 无法从第三方REST服务加载png的目标行为。
我需要如何更改代码才能使其正常工作?
#srv/image-service.cds 使用" ../db/data-model"中的{Media}; 服务流{ 实体图像作为在媒体上的投影; }
#db/data-model.cds 实体媒体{ 密钥ID:整数; @ Core.MediaType:mediaType内容:LargeBinary; @ Core.IsMediaType:true mediaType:字符串; }
#package.json " cds":{ "要求":{ "媒体":{ " kind":"休息", "凭据":{ " url":" https://upload.wikimedia.org/" } } ...
#srv/image-service.js const fs = require(" fs")。promises const {Readable} = require(" stream") module.exports =(srv)=> { srv.on(" READ"," Image",async(req)=> { const srv = cds.connect.to(" media"); const tx = srv.transaction(req); //#1-不起作用的示例-从Web服务加载png的变体 //这是目标行为 const pngBuffer等待tx.get(`/wikipedia/commons/d/d9/Test.png`); //#2-工作示例-从文件系统加载 const pngBuffer =等待fs.readFile(`$ {__ dirname}/Test.png`); const visibleStream = new Readable(); const result = new Array(); visibleStream.push(pngBuffer); 可读Stream.push(null); result.push({value:可读Stream}); 返回结果; }) }
谢谢
多米尼克,你好
尚不支持从外部服务流式传输。
您可以尝试像当前使用tx.get一样读取数据,然后在自定义处理程序中将字符串转换为Buffer。
最诚挚的问候,
Johannes
通过使用基础axios程序包请求PNG文件解决。
一周热门 更多>