将文件上传到前端还是后端的 s3 存储桶更好?

Luk*_*med 7 frontend backend amazon-s3 reactjs google-cloud-functions

我正在创建一个网络应用程序,其中有一个选项可供经过身份验证的用户上传图片。我很困惑,到底是前端好还是后端好。我已经在前端实现了它,但我必须包含我的“accessKeyId”和“secretKey”。我不知道这是否会损害我的安全。我在后端使用云函数。如果有人可以帮助我获得与此相关的最佳实践,我将非常感激。

lgd*_*tro 12

您可以从后端生成预签名 URL,然后您的前端可以将文件直接安全上传到 S3,而不会暴露您的凭据。

请查看此处的文档。

此外,本文还指出了该策略的一些优点:

  1. 您仍然可以只允许经过身份验证的用户访问预签名的 URL
  2. 您可以为生成的预签名 URL 设置过期时间
  3. 通过避免文件通过后端功能,您可以节省带宽、内存处理和上传时间

  • 虽然这些链接可能会回答问题,但最好将关键部分总结到此处的答案中并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会变得无效。- [来自评论](/review/late-answers/30367179) (2认同)