要求
- 提供存储在 S3 存储桶中的音频和视频
- 使用基本身份验证(用户名密码)有选择地保护文件夹;
- 尽可能降低延迟,但不是必须的
- 成本也是一个因素,但愿意接受各种想法
- 媒体团队上传新内容的方式。(对于 s3,他们需要手动公开每个文件)
- 我们的团队非常小,资源有限
当前设置
- 存储在 S3 存储桶中的数据
- 在 EC2 实例内运行的网站
- Apache2 服务器
我们的考虑
在 apache 级别反向代理 s3 url,并在 apache 级别配置基本身份验证。但这
需要将所有存储桶对象保持公开,然后应用存储桶策略,这已经失控了!完全阻止 S3 公共访问,然后使用 AWS PHP SDK 为锥形帐篷提供服务。然后让媒体团队从 AWS 控制台上传新内容。使用此选项不确定延迟会受到怎样的影响。
我们确信对于类似的要求会有一些好的解决方案,请为我们指出可行的解决方案,非常感谢。
编辑:目前,我们已将存储桶设为私有,并阻止所有公共访问。然后添加了存储桶策略,以仅允许公共访问我们的 EC2 实例,这样我们就实现了想要的目标。但仍然可以寻求一个完整的低延迟可行解决方案,我们可以朝着这个方向迈进。
答案1
您可能希望通过 S3 或 CloudFront 而不是 EC2 来提供静态网站。CloudFront 还允许您将存储桶设为私有。如果您需要动态站点,请仅在 EC2(或 Lambda 和 API 网关)上托管 API,然后从 S3 托管站点访问它们。
无论如何 - CloudFront 都会让您提供存储桶中的内容,同时保持存储桶的私密性,并提供良好的延迟等。