V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
saltbo
V2EX  ›  程序员

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

  •  
  •   saltbo ·
    saltbo · 2019-10-27 15:55:55 +08:00 · 5117 次点击
    这是一个创建于 1614 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本文地址: 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 等集成工具的后台来配置它们。

    image-20191027142908681

    现在只需要在你的.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 配置

    image-20191027135934555

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

    4 hugo 配置调整

    uglyURLs = true
    

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

    19 条回复    2019-10-28 01:42:26 +08:00
    supersu
        1
    supersu  
       2019-10-27 16:29:56 +08:00 via Android
    hugo 我不太熟悉,但是 hexo 部署在 oss 上要 hack js 代码,不知道 hugo 会不会不需要
    lhx2008
        2
    lhx2008  
       2019-10-27 16:36:15 +08:00
    oss 好像是子目录就不支持 index.html 了,有点智障
    hawhaw
        3
    hawhaw  
       2019-10-27 17:12:14 +08:00 via Android
    备案呢
    loading
        4
    loading  
       2019-10-27 17:18:53 +08:00 via Android
    @hawhaw 我看了,只要阿里云账号实名,然后使用非大陆地区就行了,我感觉可以。
    有时间也玩一下。
    感谢楼主。
    eason1874
        5
    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
        6
    eason1874  
       2019-10-27 17:22:10 +08:00
    @eason1874 #5 忘了标读写请求费,这两家标准存储都是收 0.01 元 /万次。
    lhx2008
        7
    lhx2008  
       2019-10-27 17:31:24 +08:00 via Android
    @eason1874 腾讯云好,但是绑域名要备案。。骚操作
    lhx2008
        8
    lhx2008  
       2019-10-27 17:32:43 +08:00 via Android
    阿里云的海外 CDN 也是被移动各种墙,还有被刷流量的风险
    loading
        9
    loading  
       2019-10-27 18:01:20 +08:00 via Android
    @lhx2008 所以呢,我好怕。
    lhx2008
        10
    lhx2008  
       2019-10-27 18:48:43 +08:00 via Android   ❤️ 1
    @loading 没什么办法,你可以把宽带调到最小,不过一般被刷也就几十块钱。。。
    saltbo
        11
    saltbo  
    OP
       2019-10-27 19:34:55 +08:00
    @hawhaw 备个案也不难啊
    saltbo
        12
    saltbo  
    OP
       2019-10-27 19:35:21 +08:00
    @loading 对 选非大陆地区的 oss 也可以
    saltbo
        13
    saltbo  
    OP
       2019-10-27 19:39:16 +08:00
    @eason1874 不开 cdn 的情况下 oss 只有流量费用和存储费用啊 HTTPS 请求哪有费用?
    saltbo
        14
    saltbo  
    OP
       2019-10-27 19:40:24 +08:00
    @lhx2008 服务器在国内肯定得备案 这不用想 哪家厂商都一样 除非不想干了。。
    lhx2008
        15
    lhx2008  
       2019-10-27 20:00:22 +08:00 via Android
    @saltbo 腾讯云国外的 cos,要绑域名也得备案。
    lhx2008
        16
    lhx2008  
       2019-10-27 20:01:05 +08:00 via Android
    小众后缀好多都备不了了
    loading
        17
    loading  
       2019-10-27 20:29:21 +08:00 via Android
    @saltbo 我是 .sh 后缀,似乎没法备
    loading
        18
    loading  
       2019-10-27 20:31:10 +08:00 via Android
    @lhx2008 你说的有道理,能被刷几千块也就认了。
    eason1874
        19
    eason1874  
       2019-10-28 01:42:26 +08:00
    @saltbo OSS 流量费贵啊,0.50 元 /GB,0 点到 8 点便宜一点,OSS 不分是否 HTTPS,GET/PUT 请求统一收费 0.01 元 /万次,CDN 五分之一的价格。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3964 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:57 · PVG 08:57 · LAX 17:57 · JFK 20:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.