使用阿里云OSS存储服务 + CloudFlare配置图床
使用阿里云OSS存储服务 + CloudFlare配置图床
冰糖呼噜AI摘要
正在生成中……
主要操作流程
- 创建 Bucket:开通 OSS 并创建 Bucket。创建 Bucket 时选择海外的地域(如果在别的地域没有服务器的话,建议使用香港),存储类型选择标准存储即可,读写权限一定要选择私有,其余的附加服务按需启用(有的得加钱)。
但为了让图床正常使用,需要设置让Cloudflare的ip能够访问。
Cloudflare的ip官方已经给出了:
简单处理一下,
1 | 173.245.48.0/20,103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,141.101.64.0/18,108.162.192.0/18,190.93.240.0/20,188.114.96.0/20,197.234.240.0/22,198.41.128.0/17,162.158.0.0/15,104.16.0.0/13,104.24.0.0/14,172.64.0.0/13,131.0.72.0/22 |
配置访问权限:进入权限控制 -> Bucket 授权策略面板,添加授权,配置如下图。
配置 CDN:在 CloudFlare 的 DNS 管理面板添加 CNAME 记录,目标设为 Bucket 的域名(可以在 Bucket 的概览界面找到),代理状态设为已代理,否则 CDN 不起作用。
绑定域名:在阿里云的 Bucket 配置 -> 域名管理界面绑定你刚设置的域名,这时阿里云需要验证域名的所有权,按照其所说的在 CloudFlare 的 DNS 管理处添加指定 TXT 记录即可。
创建并添加证书:在 CloudFlare 的配置面板的 SSL/TLS -> 源服务器处,选择创建证书。创建之后会告诉你源证书与私钥,这个界面暂时不要动。打开刚才在阿里云控制台绑定证书的界面,选择证书托管,并上传 SSL 证书,这时会打开 SSL 证书的界面,选择上传证书,并将 CloudFlare 给出的源证书和密钥复制到上传证书的对应字段处(证书名字随便设),然后确定。这时切换回上传 SSL 证书,应该就能在证书名称处看到刚刚设置的证书名字了(看不到的话重开一下这个界面试试),选中,然后点下方的上传即可。
然后我们查看域名绑定配置,发现已经绑定上了。然后我们去上传一张照片。
自有域名选择自己配置好的解析域名,我们就可以看到 URL 已经变成咱们自定义的啦!
安全性配置
- 跨域设置:在阿里云 OSS 的数据安全 -> 跨域设置中创建跨域规则,来源设置为你的网站的地址。为了能让网站在本地测试时也能正常展示图片,建议同时添加
localhost:*
与127.0.0.1:*
。 - 防盗链设置:和跨域设置类似。不同之处在于 Referer 是包含请求协议的,所以类似于
example.org
或localhost:*
等不包括协议的配置是无效的,需要改为https://example.com
或*://localhost:*
;需要注意的是*.example.org
虽然是有效的,但是没有指定 https 协议,安全起见最好改为https://*.example.org
。 - 设置错误页:S3协议的bucket在公开读的权限下会默认展示桶内文件列表和路径,特征明显而且并不友好。绝大多数的对象存储都支持设置静态网站
index.html
和错误页404.html
的设置,比如阿里云OSS在【基础设置】-【静态页面】下。这里随手找了两个单页供选择和参考 - CloudFlare安全规则:
PicGo 配置
PicGo 是一款快速上传图片到图床,并自动复制图片 URL 到剪贴板的工具,你可以在 Github 的 release 页获取该程序。
- 权限设置:在阿里云的权限控制 -> Bucket 授权策略面板新增授权,配置如下:
如果当前没有 RAM 子帐号,请点击右上角头像 -> 访问控制,然后在左侧的身份管理 -> 用户处创建一个子帐号。创建完成后在子帐号的详情页创建 AccessKey,得到 AccessKey 的 KeyID 与 KeySecret,保留备用。
- 上传配置:打开 PicGo 主界面,在图床设置 -> 阿里云 OSS 内填写对应的表单项。“KeyID” 与 “KeySecret” 即刚才获取的子帐号 AccessKey 的 KeyID 与 KeySecret,“设定 Bucket” 为 Bucket 的名称,“存储区域” 为 Bucket 所在区域(与 Bucket 域名内的值统一,例如
oss-cn-hongkong
),自定义域名填写你设置的域名,其余两项按需填写即可。配置完成后点击确定并设为默认图床。