腾讯COS托管静态网站
腾讯轻量云服务器到期了,续费价格离谱。而且原来放的几个网站都逐渐改为gitbook和hugo生成静态,改用COS来托管,10G空间存储一年只需要不到10元,流量几乎用不到几毛钱,总体下来更加划算,而且原来通过腾讯备案的域名也不会因为vps到期会被注销备案。
cos桶有上传工具,在本地生成后,可以通过工具批量上传文件,写一个bash脚本,将生成和上传合二为一,很是方便。
一、COS桶配置
- 配置权限:创建一个cos,权限为公有读私有写
- 配置静态网站:基础配置 > 静态网站,开启静态网站,同时设置索引文档指定首页html文件
二、域名解析
- cos配置:在域名与传输管理 > 自定义源站域名页面,添加将要解析的域名,如:bytetoy.cn,注意,添加域名时,在对话框中的源站类型选择静态网站源站
- 将以将www和@均做解析,否则设置了解析后www和裸域名不会自动跳转,如:www.bytetoy.cn
配置域名解析,cos的解析方式为cname,在域名服务商添加cname解析。注意添加www和@两种解析都设置,解析的cname的url,在cos添加域名后,会有一个url,如:
bytetoy-12×××××54.cos-website.ap-shanghai.myqcloud.com
三、文件上传
cos本身可以上传文件,但是无法上传文件夹,手工逐个文件上传实在太慢了。 而且cos提供了多种上传工具,比如:coscli,coscmd,都是非常好用的,配置好了,上传非常方便。
创建cos桶密钥 在腾讯的访问密钥,生成SecretId和SecretKey,注意,ID和Key生成后要记好,生成后不支持查看,忘了只能再次生成一个,而且同时只能有两个密钥。
- 配置coscli配置文件
- 下载COSCLI工具,然后运行
./coscli config init
逐步配置密钥; - 注意需要配置的几项为:Secret ID,Secret Key,Bucket Name,Bucket Endpoint,Bucket Alias,其他可以直接回车设置为空
- 将coscli工具添加到PATH中,后面可以在任何目录下使用此工具
- 生成的
.cos.yaml
文件,如下:建议生成一个后,再进行手工调整cos: base: secretid: iSUqIy××××××××××××××××××××××× secretkey: CpGQLdFPfJLZov××××××××××××××××××××××× sessiontoken: 3kNZR4××××××××××××××××××××××× protocol: https mode: "" cvmrolename: "" buckets: - name: bytet××××××××××××××××××××××× alias: bytetoy region: "ap-shanghai" endpoint: cos.ap-shanghai.myqcloud.com ofs: false - name: edu××××××××××××××××××××××× alias: eduez region: "ap-shanghai" endpoint: cos.ap-shanghai.myqcloud.com ofs: false - name: jzj××××××××××××××××××××××× alias: jzjyxy region: "ap-shanghai" endpoint: cos.ap-shanghai.myqcloud.com ofs: false
- 下载COSCLI工具,然后运行
- 生成&批量上传
- coscli有很多好用的命令,配置好后,可以使用
coscli ls
列出全部桶列表 - coscli可以使用cp和sync进行上传和同步文件,写一个简单的shell脚本,生成和上传合二为一:
#!/bin/bash echo "1. build web html" hugo echo "2. sync files to cos" #cp -R public/* /var/web/eduez coscli sync ~/web/eduez/public/ cos://eduez/ -r