我有一个连接到AWS Cognito进行身份验证的Web应用程序。反过来,该应用程序使用lambda函数连接到外部API。该应用程序从该API收集信息,并将其存储在dynamodb表中,以供Cognito授权用户使用。最终用户在任何时候都无法访问将其连接到外部API的令牌。这很重要,因为最终用户可能会以恶意方式使用该令牌,并让我在API提供程序方面遇到麻烦。本质上,我的应用充当了最终用户和外部API之间的缓冲区和聚合器。
外部API提供了可直接下载的文件URL,需要授权。我想将这些提供给最终用户。如我所述,我不想给他们直接授权,而是以某种方式通过lambda代理该请求,然后将其重定向到最终用户。这就是我被困住的地方。
很显然,我可以使用lambda和S3下载文件,然后将其提供给最终用户。这不是一个好的解决方案,因为它需要大量资源来下载,存储和上载文件到最终用户。而且,用户想要文件的时间与将文件下载到S3并准备上传给用户的时间之间会有差距。
NodeJS stream out of AWS Lambda function表示lambda函数不支持Node流作为响应,因此以某种方式在lambda中开始下载然后传递流的想法似乎不可行。我不确定这是否有意义。
我不知道lambda(或api网关)是否有可能以某种方式返回重定向,并且以最终用户无法访问令牌的方式嵌入了授权。我什至不确定我想做的事情是否可行,但对我来说似乎是一个合理的用例。有什么想法吗?谢谢。