【发布时间】:2017-07-19 22:23:57
【问题描述】:
我想做的事:
我想做的是有一个 url,它将返回给调用者一个 CSV 文件,该文件本质上是数据的导出。我希望这仍然是一个无服务器解决方案。
我做了什么:
我已经使用我想要的 URL 创建了一个 AWS API 网关。我创建了一个 lambda,它将查询数据库并创建该数据的 CSV 字符串。该数据被放置在 JSON 对象中并返回。 API 网关然后从 json 对象中获取 CSV 数据,并将 CSV 以适当的标题返回给调用者,以表明它是 CSV 和附件。从浏览器测试我会自动下载,就像我想要的那样。
我看到的问题:
这很有效,直到有大量数据时我开始得到“身体尺寸太长”。
我的解决方法:
我在谷歌上搜索了一下,发现其他人也遇到了类似的问题。在一个解决方案中,我看到他们返回了指向他们创建的文件的链接。这个解决方案对他们来说似乎是可行的,因为他们有一台服务器。对于我的无服务器架构,这似乎有点棘手。我可以将文件存储到 S3 中,但是我必须返回一个指向 S3 的链接。这似乎可以工作,但感觉不对,就像我缺少配置选项一样。感觉就像我通过返回 s3 url 来暴露实现一样。
我四处寻找教程和做类似事情的人的例子,但我没有找到。
我的问题:
有没有办法做到这一点? 还有其他我不知道的解决方案吗? 我如何从更大尺寸的 API 网关返回文件,在这种情况下为 CSV
【问题讨论】:
-
我坚持让 CSV 生成并开始下载。你是怎么设置的?
标签: amazon-web-services aws-lambda aws-api-gateway