NoD*_*ame 4 amazon-s3 cloudflare
假设用户的头像已上传并存储在Amazon S3上,我们有一个域名mywebsite.com,我想使用CloudFlare它来缓存S3存储桶中的文件.我该怎么办?
我们可以在cloudflare网站上找到的文档是相当隐含的,我不得不google很多才能使它工作.所以这是我的解决方案可能不全面,但它可能足够开始.
1)创建一个名为的桶 avatars.mywebsite.com
2)向其添加以下策略.政策,而不是CORS.
{
"Version": "2012-10-17",
"Id": "http referer policy",
"Statement": [
{
"Sid": "CloudFlare Requests",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::avatars.mywebsite.com/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"103.21.244.0/22",
"103.22.200.0/22",
"103.31.4.0/22",
"104.16.0.0/12",
"108.162.192.0/18",
"131.0.72.0/22",
"141.101.64.0/18",
"162.158.0.0/15",
"172.64.0.0/13",
"173.245.48.0/20",
"188.114.96.0/20",
"190.93.240.0/20",
"197.234.240.0/22",
"198.41.128.0/17"
]
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我认为它的作用是限制对存储桶的访问,以便只能使用属于CloudFlare并可能在其网站上某处找到的IP来访问它.我也相信Id并且Sid可以包含任何有意义的信息.
3)在CloudFlareDNS管理器中添加CNAME记录.名称应该是avatars和值avatars.mywebsite.com.s3.amazonaws.com
4)现在,如果您想使用类似于user/1/avatar.jpg您网站的路径访问存储桶中的文件,请使用以下src:
https://avatars.mywebsite.com/user/1/avatar.jpg
5)值得指出的是,它可能需要从改变SSL水平Full(Strict),以Full在CloudFlare仪表板如果使用HTTPS.
| 归档时间: |
|
| 查看次数: |
1579 次 |
| 最近记录: |