【发布时间】:2014-11-24 11:56:23
【问题描述】:
在我的应用中,用户会上传大量的图片文件。这是一个照片托管网站。对于这种情况,我想到了直接从客户端上传文件到amazon s3。这安全吗?我担心安全。我是否应该简单地将文件上传到我的服务器,然后将其发送到 s3?
【问题讨论】:
标签: file-upload amazon-web-services amazon-s3
在我的应用中,用户会上传大量的图片文件。这是一个照片托管网站。对于这种情况,我想到了直接从客户端上传文件到amazon s3。这安全吗?我担心安全。我是否应该简单地将文件上传到我的服务器,然后将其发送到 s3?
【问题讨论】:
标签: file-upload amazon-web-services amazon-s3
最佳做法是让客户端应用程序直接上传到 S3。
允许直接上传到 s3 可以实现大规模并发并降低基础架构成本。例如,一些基础设施提供商 Heroku 不允许连接持续时间超过 30 秒。这种限制会使托管图像变得更加困难。
S3 允许通过名为pre-signed URLs 的功能进行上传。您的后端仍负责对用户进行身份验证;然后它会生成一个唯一的 URL,然后客户端应用程序可以使用该 URL 直接上传。
【讨论】:
您绝对应该通过自己的服务器进行上传,这样您就可以控制谁可以上传什么。许多 Web 应用程序都有简化这一点的模块。 永远不要接受用户输入(甚至更不用说上传),因为它们看起来是......你需要能够进行完整性检查,以及任何类型的二进制可能恶意软件检查。
【讨论】:
您可以使用 aws cognito 对用户进行身份验证和授权。然后从客户端使用 amplify 或 aws sdk,您可以直接登录并上传文件到 s3
【讨论】: