省流
使用MinIO作为EdgeOne的源站。
背景介绍
项目中需要一个兼容S3协议的对象存储服务,腾讯云的COS虽然也兼容S3协议,但是也只是支持简单的上传下载,对于上传的时候同时打标签这种需求,就不兼容S3了。所以决定自建一个对象存储服务,这里选择EdgeOne为对象存储提供CDN加速服务。本文详细记录了设置过程,作为一个记录方便以后参考。
MinIO设置
MinIO侧设置比较简单,只需要一个具有桶访问权限的用户名\密码就行,可以直接使用管理员账号,但是还是建议创建专门的用户,分配相应权限。详细步骤记录如下:
创建测试桶
这里设置桶名称为“test”。
设置桶访问模式
点击桶名,进入设置界面,设置桶访问模式为“private”。(我这里的桶默认权限初始值是n/a,我不知道是不是我安装问题,我认为他应该默认就是private才对)。
创建Policy
创建一个名为test-policy的Policy,内容为:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::test/*"
]
}
]
}
创建User
创建名为test-user的用户,设置密码,Policy选择test-policy,这样,test-user用户就具有test桶的所有权限。
EdgeOne设置
域名设置
域名设置中源站地址填写MinIO的API地址,地域在MinIO后台Settings/Region中找到,我这里设置的是"cn-north-1",Access Key ID和Secret Access Key分别是用户名\密码。
推荐配置
推荐配置中可以选择“大文件下载”。
配置CNAME
根据提示配置好域名的cname记录
等待配置生效
上传一个图片到桶跟目录,假设名称为a.png,可以使用地址 http://minio-test-cdn.trycatch.xyz/test/a.png
访问
一些细节
最后,还有一些细节需要留意下:
- EdgeOne默认回源规则为跟随协议,如果源站地址不支持https,想要强制使用http协议回源,可以在规则中增加如下配置。
- EdgeOne支持申请免费证书,在域名管理中设置即可
- 如果设置了https证书,可以开启强制https访问
- MinIO分API地址和Console地址(Web管理界面地址),目前Console地址可以套EdgeOne加速,API地址套EdgeOne地址上传下载目前没有问题,但是涉及到PUT请求会有问题,所以不建议直接套EdgeOne使用,本文介绍的通过S3协议直接回源是没有问题的。