我有一个网络应用,使用 firebase 进行身份验证和数据库,使用 Angular4 作为前端。我通过我的网络应用程序将图像上传到 AWS S3 ,它运行正常。
我目前正在使用angular4代码中的 accessKeyId 和 secretAccessKey 将文件直接上传到AWS S3(使用AWS SDK for javascript)。当编译角度时,它仍然只是javascript,仍然由客户端浏览器在前端使用。我不喜欢这样,这给我带来了安全风险。
如何在不暴露我的密钥的情况下直接从Angular4上传图像到S3?
答案 0 :(得分:6)
创建可生成AWS S3 pre-signed URLs的小型后端服务/ API。然后,您的Angular应用程序可以使用该预签名URL将图像上载到S3。后端服务将是唯一需要您的AWS访问权限的服务。
AWS Lambda + API Gateway非常适合此类后端服务。