某在线教育平台需要支持全国学员将课程作业、视频片段等文件上传至后端存储,目前采用直接使用 Amazon S3 默认域名上传、访问文件,地址冗长且辨识度低,不利于业务推广与用户记忆。该公司希望使用自定义域名 static.example.com 对外提供访问,替代原始的 S3 域名,将静态资源从 S3 无缝衔接至自身品牌域名下,提升品牌形象与用户信任度。
Amazon S3 的“静态网站托管 + 存储桶策略”功能,配合 Amazon Route 53 或第三方 DNS 服务,将自定义域名指向 S3 存储桶的终端节点。
本次采用AWS Console界面完成作业。
注意:根据项目的具体情况,可以采用不同的实施方法。比如使用命令行(CLI)部署、代码部署 (CloudFomation、Terraform等)、以及其它开发语言(SDK)完成作业。
步骤一:创建 S3 存储桶。
登录 AWS 控制台,进入 S3 服务,点击"创建存储桶";输入 S3 存储桶名称,其名称必须与自定义域名完全一致;选择区域,权限设置中取消勾选"阻止所有公共访问权限",点击创建。
步骤二:配置存储桶策略
在 权限标签页中,点击存储桶策略,输入对应的策略内容,允许匿名用户读取存储桶内文件,同时开放上传权限,保存权限配置。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowPublicUpload",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::upload.example.com/uploads/*"
}
]
}
步骤三:启用静态网站托管。
进入存储桶,点击"属性"选项卡,找到"静态网站托管"并编辑,选择"使用此存储桶托管网站",索引文档填 index.html(激活终端节点),保存后,记录该 S3 网站终端节点。
步骤四:DNS 解析配置
在 Route 53 控制台或者或第三方 DNS 配置中,进入对应域名的托管区域,新建别名记录,将自定义域名指向 S3 网站终端节点。等待解析生效(通常 2-5 分钟)。
1. 在命令行中,使用 curl 命令上传一个测试文件,确认返回 HTTP 200 OK。
2. 打开 S3 控制台,确认上传的文件已经存在,文件内容可以正常读取。。
3. 在浏览器中使用自定义域名访问,确认文件内容可以正常读取。