Uptoc - 将你的 Hugo 静态博客部署到阿里云 OSS 上

2019-10-27 15:55:55 +08:00
 saltbo

本文地址: https://saltbo.cn/post/hugo-uptoc-oss.html

1 起源

使用 Hugo 有一段时间了,和大家一样最开始是是部署在 GithubPages 上,后来觉得 GithubPages 在国内访问太慢了。搜寻一圈发现了 Netlify,用了一段时间,但是速度还不是很满意。那么有没有办法将我们的博客部署到国内的云存储上呢?

答案是肯定的,比如最近被封的 GiteePages。但问题也很明显,它们只开放二级域名(这次的事儿之后二级域名估计也不开放了),自定义域名得用付费版。

国内有很多云储存,比如阿里云的 OSS,七牛,又拍云等。

那么为什么不把我们的静态博客部署在这上面呢?

2 实践

经过我的实践,实际上我们只缺少一个部署到云储存的 cli 工具而已。

由此,Uptoc 诞生了。https://github.com/saltbo/uptoc

uptoc,即 upload to the cloud。它是一个用于将文件部署到云存储的命令行工具。

2.1 Uptoc 安装

curl -sSf http://uptoc.saltbo.cn/install.sh | sh

2.2 Uptoc 使用

uptoc --endpoint oss-cn-beijing.aliyuncs.com \
--access_key LTAI4FxxxxxxxBXmS3 \
--access_secret Vt1FZgxxxxxxxxxxxxKp380AI \
--bucket demo-bucket \
/opt/blog/public

只需要简单的参数就可以将目标文件自动同步到云端。当然为了安全考虑,access_key 和 access_secret 支持系统变量,这样我们就可以通过 Travis 等集成工具的后台来配置它们。

现在只需要在你的.travis.yml 中增加如下配置就完成了

after_success:
  - curl -sSf http://uptoc.saltbo.cn/install.sh | sh
  - uptoc --endpoint oss -cn-zhangjiakou.aliyuncs.com --bucket saltbo-blog public

完整配置详见 https://github.com/saltbo/blog/blob/master/.travis.yml

3 阿里云 OSS 配置

创建好 bucket,在 bucket 的基础设置里需要进行这两项配置。

4 hugo 配置调整

uglyURLs = true

想要部署在 oss 上,hugo 的 uglyURLs 选项必须打开。

5141 次点击
所在节点    程序员
19 条回复
supersu
2019-10-27 16:29:56 +08:00
hugo 我不太熟悉,但是 hexo 部署在 oss 上要 hack js 代码,不知道 hugo 会不会不需要
lhx2008
2019-10-27 16:36:15 +08:00
oss 好像是子目录就不支持 index.html 了,有点智障
hawhaw
2019-10-27 17:12:14 +08:00
备案呢
loading
2019-10-27 17:18:53 +08:00
@hawhaw 我看了,只要阿里云账号实名,然后使用非大陆地区就行了,我感觉可以。
有时间也玩一下。
感谢楼主。
eason1874
2019-10-27 17:19:32 +08:00
别用套路云,用良心云,好用而且良心。

套路云 OSS 直接访问流量 0.50 元 /GB,套 CDN 是 0.15 元 /GB 回源+0.24 元 /GB 加速+0.05 元 /万次静态 HTTPS 请求(动态的 0.15 元 /万次),子目录不支持 index.html 索引。

良心云 COS 直接访问流量 0.50 元 /GB,套 CDN 是 0.15 元 /GB 回源+0.21 元 /GB 加速,HTTPS 请求不收费,而且根目录子目录都都支持 index.html 索引。

如果你页面静态资源多图片多,你就知道 HTTPS 请求费用有多贵了,按平均 1PV 里面 10 个请求来算,每天 1 万 PV 一年就 180 多了。

不过,套路云在香港和海外地域的价格也没有优势,不过每月有 5GB 免费流量(请求收费),而且套路云 CDN 可以只用选择海外加速,CDN 也可以绑定没有备案的域名。
eason1874
2019-10-27 17:22:10 +08:00
@eason1874 #5 忘了标读写请求费,这两家标准存储都是收 0.01 元 /万次。
lhx2008
2019-10-27 17:31:24 +08:00
@eason1874 腾讯云好,但是绑域名要备案。。骚操作
lhx2008
2019-10-27 17:32:43 +08:00
阿里云的海外 CDN 也是被移动各种墙,还有被刷流量的风险
loading
2019-10-27 18:01:20 +08:00
@lhx2008 所以呢,我好怕。
lhx2008
2019-10-27 18:48:43 +08:00
@loading 没什么办法,你可以把宽带调到最小,不过一般被刷也就几十块钱。。。
saltbo
2019-10-27 19:34:55 +08:00
@hawhaw 备个案也不难啊
saltbo
2019-10-27 19:35:21 +08:00
@loading 对 选非大陆地区的 oss 也可以
saltbo
2019-10-27 19:39:16 +08:00
@eason1874 不开 cdn 的情况下 oss 只有流量费用和存储费用啊 HTTPS 请求哪有费用?
saltbo
2019-10-27 19:40:24 +08:00
@lhx2008 服务器在国内肯定得备案 这不用想 哪家厂商都一样 除非不想干了。。
lhx2008
2019-10-27 20:00:22 +08:00
@saltbo 腾讯云国外的 cos,要绑域名也得备案。
lhx2008
2019-10-27 20:01:05 +08:00
小众后缀好多都备不了了
loading
2019-10-27 20:29:21 +08:00
@saltbo 我是 .sh 后缀,似乎没法备
loading
2019-10-27 20:31:10 +08:00
@lhx2008 你说的有道理,能被刷几千块也就认了。
eason1874
2019-10-28 01:42:26 +08:00
@saltbo OSS 流量费贵啊,0.50 元 /GB,0 点到 8 点便宜一点,OSS 不分是否 HTTPS,GET/PUT 请求统一收费 0.01 元 /万次,CDN 五分之一的价格。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/613411

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX