0

我想上传一个文件到S3,然后有lambda生成ID,日期。 然后我想把这个数据返回给客户端。 为了安全起见,我想避免在客户端生成id和日期。将文件上传到s3,并自定义响应客户端

目前,我正在尝试使用调用lambda上传到s3的API网关。不过,我在设置时遇到了问题。我知道这不是一个首选的方法。

是否有另一种方法可以在不编写自己的Web服务器的情况下执行此操作。 (我想用lambda)。

如果不是,我该如何配置我的API网关方法来支持文件上传到lambda?

回答

0

你有几个选择这里:

  1. 使用API​​网关作为AWS服务代理至S3
  2. 使用API​​ Gateway调用lambda函数,它使用AWS SDK上传到S3

无论哪种情况,您都需要在调用API网关之前对文件内容进行base64编码,然后将其发布到请求正文中。

我们目前没有关于此确切用例的任何文档,但我会参考S3 APIAWS SDK文档获取更多信息。如果您有任何具体问题,我们很乐意提供帮助。

感谢, 瑞安

+0

据我所知,AWS代理将像使用必要的工作AWS SDK上传到S3,因为我需要运行自定义服务器代码,并将其返回到不为我用的情况下工作客户。纠正我,如果我错了。第二个选项似乎是正确的,但我已经读过,lambda不是用来处理文件上传,而是一个简单的基于事件的服务。与ec2上的Web应用程序相比,为lambda函数提供大量内存以处理此流量是否有缺点?我的文件大概是10MB的数据。 – lawrence

+0

API网关当前将有效负载大小限制为10MB,因此可能不适合此用例。您可能需要跟进Lambda(https://forums.aws.amazon.com/forum.jspa?forumID=186)以讨论更多选项。 –

+0

我相信一个Lambda func会在大文件上传完成之前超时。更好地上传到S3并让该上传事件触发Lambda函数来运行。虽然您需要您的客户在上传完成后拨打电话以获取ID和日期。 – Carl

相关问题