尝试使用阿里云OSS静态托管网站
云服务器要到期了,续费太贵,上面也没有什么服务,干脆直接托管到对象存储上了。
注册域名
几年前就注册好了。
注意,必须要有域名,不然静态网站托管不了。
创建 Bucket
- Bucket 名称:自己写
- 地域:选择 Bucket 所在地域,随便
- 存储类型:选择标准存储
- 读写权限:选择公共读(会有安全警告,不用管)
创建 AccessKey
根据网页提示进行操作即可。
注意保密。
下载 ossutil 工具
为了把网页传到 OSS 上,有多个选择,简单起见这里用命令行工具 ossutil
配置完成后试一下,能正常列出 Bucket 列表就没问题。
PS C:\Users\Davy> ossutil64.exe ls
CreationTime Region StorageClass BucketName
2022-10-27 13:51:57 +0800 CST oss-cn-hangzhou Standard oss://davycloud
生成网站
hugo --gc --minify --buildFuture
[[使用 Hugo 创建静态网站]]
上传网站
ossutil64 cp -urf public/ oss://davycloud/
查看详细的选项说明:
ossutil64.exe help cp
初次上传有点慢,一千多个文件花了大概 20 秒:
E:\GitHub\davycloud\website>ossutil64 cp -urf public/ oss://davycloud/
Total num: 1132, size: 43,962,750. Dealed num: 294(upload 227 files, 67 directories), OK size: 13,027,113, Progress: 29.6Total num: 1132, size: 43,962,750. Dealed num: 566(upload 484 files, 82 directories), OK size: 26,645,759, Progress: 60.6Total num: 1132, size: 43,962,750. Dealed num: 853(upload 734 files, 119 directories), OK size: 38,076,510, Progress: 86.
Succeed: Total num: 1132, size: 43,962,750. OK num: 1132(upload 898 files, 234 directories).
average speed 2260000(byte/s)
19.475890(s) elapsed
紧接着又重新执行了一遍:
E:\GitHub\davycloud\website>ossutil64 cp -urf public/ oss://davycloud/
Total num: 1132, size: 43,962,750. Dealed num: 607(skip 607 files), OK size: 28,725,633, Progress: 65.341%, Speed: 0.00KB
Succeed: Total num: 1132, size: 43,962,750. OK num: 1132(skip 1132 files), Skip size: 43,962,750.
average speed 0(byte/s)
9.009816(s) elapsed
虽然使用了增量更新模式,但是还是有点慢,主要是要查询存储服务器的文件状态比较耗时。
通过添加 --snapshot-path
选项可以(在一定情况下)大幅减少消耗的时间:
PS E:\GitHub\davycloud\website> ossutil64 cp public/ oss://davycloud/ -ru --snapshot-path ../.snap
Succeed: Total num: 1132, size: 43,888,392. OK num: 1132(skip 1132 files), Skip size: 43,888,392.
average speed 0(byte/s)
0.073271(s) elapsed
注意,第一次使用 snapshot 的时候必须是一次全量传输,不然没有记录下文件信息还是无法节约时间。
由于每次 Hugo 构建网站的时候,还是会涉及很多文件的修改,所以当有新文章的时候效果仍然不明显。
配置静态网页
配置完成后,如果直接通过 OSS 的 URL 去访问,不会打开页面,而是下载 index.html
。这是阿里云的安全策略决定的,只能通过绑定自定义域名解决。
绑定域名
现在可以访问 http://blog.davycloud.com/。
主域名现在解析在别处,这里使用二级域名,
blog.davycloud.com
配置 HTTPS
阿里云提供了免费的证书,有效期一年
先选择立即购买,购买 20 个足够用了。
购买完成后点击创建证书,然后输入想绑定的域名即可。
申请成功后回到 OSS 管理页面,点击证书托管,可以看到相应的证书,选择上传即可。
大概几分钟即可生效。