我们将一些文本文件上传到S3,我们想通过API Gateway使用Lambda函数下载这些文件,我们进行了以下配置。
例如,在这种情况下,文件download.txt具有此内容 在描述性写作中,作者没有告诉读者所看到,感觉,测试,闻到或听到的是什么。相反,他描述了他经历的一些事情......
Lambda函数响应S3中文件的字节,在这种情况下是一个txt文件
... SW4gZGVzY3JpcHRpdmUgd3JpdGluZywgdGhlIGF1dGhvciBkb2VzIG5vdCB0ZWxsIHRoZSByZWFkZXIgd2hhdCB3YXMgc2VlbiwgZmVsdCwgdGVzdGVkLCBzbWVsbGVkLCBvciBoZWFyZC4gIFJhdGhlciwgaGUgZGVzY3JpYmVzIHNvbWV0aGluZyB0aGF0IGhlIGV4cGVyaWVuY2VkIGFuZCwgdGhyb3VnaCBoaXMg
配置API网关的方法响应和集成 Method Response Integration Resonse
使用所需参数执行API网关测试。
在描述性写作中,作者并未告诉读者所看到,感受,测试,闻到或听到的内容。相反,他描述了他经历的一些事情......
响应是来自S3的文件的内容,但是当我们在浏览器中执行API网关时,它返回一个txt文件,但其内容是返回lambda函数的字节 并且应该与API Gateway测试中的测试响应相同。
在浏览器中执行API网关
https://xxxxxx.execute-api.us-west-2.amazonaws.com/file/download?key=download.txt&bucketName=xxxxxxxxxxxxxxxxxxxx&isMultipart=false
文件内容为
SW4gZGVzY3JpcHRpdmUgd3JpdGluZywgdGhlIGF1dGhvciBkb2VzIG5vdCB0ZWxsIHRoZSByZWFkZXIgd2hhdCB3YXMgc2VlbiwgZmVsdCwgdGVzdGVkLCBzbWVsbGVkLCBvciBoZWFyZC4gIFJhdGhlciwgaGUgZGVzY3JpYmVzIHNvbWV0aGluZyB0aGF0IGhlIGV4cGVyaWVuY2VkIGFuZCwgdGhyb3VnaCBoaXMg...
您是否有任何想法可以接收正确的内容文件?
谢谢
答案 0 :(得分:0)
您应该能够使用Buffer.from将base64数据转换为二进制数据。
从那里,您可以将其上传到S3,或使用API网关将其作为响应发回。
注意:我假设您的Lambda函数是在Node中编写的。如果没有,您应该能够以其他语言应用相同的方法。