我有一个从AWS API Gateway调用的lambda函数。
lambda将图像作为multipart / form-data接收,然后lambda需要添加一些额外的标头,并使用multipart / form-data将该图像传递给另一个外部服务。] >
现在,我的服务正在执行此操作:
'use strict' const AWS = require('aws-sdk'); const https = require('https'); const request = require('request'); exports.handler = (event, context, callback) => { const options = { method: 'POST', url: 'https://external-service/image-storage', port: 443, headers: { "Content-Type": "multipart/form-data" }, formData: { username: "67a43djte5s4cb54mnasbds23", secret: "47938hjfsdhjfdfdfs", photo: \\ I want to put here the image received in the event } }; request(options, function(err, res, body) { if (err) console.log(err); console.log(body); }); }
在
photo
参数中,我尝试放入event.body
,但是它不起作用,因为外部服务给了我一个“无效的请求”(我已经尝试过用邮递员使用外部服务,并且它可以正常工作。) >所以我认为问题出在lambda上。
当我在控制台中打印event.body
的内容时,这是输出:
2020-04-02T13:17:27.478Z 0c03qsrf-78a2-2356-b9b0-0fd76fb367712 INFO ----------------------------027326659651005153655343 Content-Disposition: form-data; name="image"; filename="MyImage.jpg" Content-Type: image/jpeg ����JFIF��C...
我需要对身体进行任何其他变形吗?
谢谢,
我有一个从AWS API Gateway调用的lambda函数。 Lambda正在接收图像作为多部分/表单数据,然后Lambda需要添加一些额外的标头并将该图像传递给...
[如果有人到达时遇到了我昨天遇到的相同问题,最好的方法是遵循Michael Hausenblas的建议(请参阅他在我的问题下的评论),并使用S3和预先签名的网址。
但是,由于前端的某些限制,我无法采用这种方法。