我有一个Web应用程序,它使用 firebase 进行身份验证和数据库,并使用 Angular4 进行前端。我正在通过我的Web应用程序将图像上传到 AWS S3 ,并且工作正常。
问题:
我目前在我的angular4代码中使用自己的 accessKeyId 和 secretAccessKey 将文件直接上传到AWS S3(使用适用于JavaScript的AWS开发工具包)。编译angular时,客户端浏览器仍会在前端使用javascript。我不喜欢这样,这对我构成了安全隐患。
如何在不暴露密钥的情况下直接将图像从Angular4上传到S3?
最佳答案
创建一个可以生成AWS S3 pre-signed URLs的小型后端服务/ API。然后,您的Angular应用程序可以使用该预签名URL将图像上传到S3。后端服务将是唯一需要您的AWS访问权限的东西。
AWS Lambda + API网关非常适合此类后端服务。
关于angular - 上载到S3,而不会暴露您的accessKeyId,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46343760/