该文章距离发布日期已经过了 1808 天 ,请注意信息甄别。


  1. 1. 注册配置
  2. 2. 使用
    1. 2.1. 下载安装 qshell
    2. 2.2. 配置同步文件
    3. 2.3. 执行同步
    4. 2.4. 查看日志

像 hexo 这种类型博客,很多人部署到 GitHub 上面,但由于 GitHub 国内访问速度堪忧,今天闲着没事就想着部署到七牛云上面去。虽然目前没有插件支持部署到七牛云,但是用七牛官方工具 qshell 还算方便。如果有时间自己再写一个 - -



注册配置

这里当你以下的都有了

  • 关于注册七牛,实名认证,配置融合 cdn 这里就不赘述了。
  • 关于 hexo 下载配置使用,这里也不赘述了。

必要的:

创建储存空间 -> 空间设置 -> 开启默认首页

融合cdn -> 域名配置 -> 缓存自定设置 -> .html;.htm;.xml 缓存0天


使用

下载安装 qshell

下载 qshell,我这里是用的 mac 版本

mv Downloads/qshell-v2.1.8/qshell-darwin-x64 ./qshell
chmod +x qshell
sudo mv qshell /usr/bin/

看看安装是否正常:

qshell -v
QShell/v2.1.8 (darwin; amd64; go1.9)

配置 AccessKey/SecretKey:

qshell account AccessKey SecretKey

配置完可以在 ~/.qshell/account.json 查看

配置同步文件

这里我配置是这么写的

{
    # 配置同步路径
    "src_dir" : "/Users/liboy/projects/liboy_hexo/public/",
    # 是否覆盖
    "overwrite" : true,
    # 检查新增文件
    "rescan_local" : true,
    # bucket 名称
    "bucket" : "host"
}

根据官方文档,这样的配置刚好符合需求:

overwrite 这个参数设置为 true 的时候,覆盖操作会在两种情况下发生:
(1)本地文件的最后修改时间发生了改变(认为该文件内容已变化),并且在设置了 rescan_local 为 true 的情况下;
(2)当开启了 check_exists 选项,发现空间已存在同名文件,而且在 check_hash 或者 check_size 发现文件内容 hash 或者大小不同的情况下
总之,当本地文件发生改动的时候,如果你希望将改动后的文件覆盖空间已有的文件,那么请设置 overwrite 为 true,否则默认情况下,不会去覆盖,因为这个操作很危险。

这里我把配置文件放在 hexo 根目录,方便使用。详细关于 qshell qupload 文档:传送门

执行同步

qshell qupload 10 qn_upload.conf

这里使用的qupload10代表线程数,qn_upload.conf是刚写的配置文件。执行后就会打印出同步的文件, 然后访问你的空间域名就可以了。

查看日志

日志是放置在 ~/.qshell/qupload/ ,可以查看同步的情况。

cat ~/.qshell/qupload/1479e606bb2960d519cec99bb911adc4/1479e606bb2960d519cec99bb911adc4.log

...
2018/09/19 11:36:01 [I] -------------Upload Result--------------
2018/09/19 11:36:01 [I]               Total:       106
2018/09/19 11:36:01 [I]             Success:         1
2018/09/19 11:36:01 [I]             Failure:         0
2018/09/19 11:36:01 [I]        NotOverwrite:         1
2018/09/19 11:36:01 [I]             Skipped:       104
2018/09/19 11:36:01 [I]            Duration:   4.733226989s
2018/09/19 11:36:01 [I] ----------------------------------------

ok! it’s all done~