0%

hexo 博客搭建之七牛云部署

本文将介绍如何将博客搭建在七牛云面向个人认证用户免费赠送的10GB存储空间上。

将博客部署到七牛云前须知

  • 拥有工信部备案域名,可通过域名服务商配置 CNAME 解析,因为七牛云默认仅提供30天临时域名服务。

  • 可免费使用 HTTP 服务,但 HTTPS 需要收取额外费用。具体资费请查看 价格和优惠

    注:七牛云提供 HTTPS服务免费 SSL 证书。

拥有七牛云账号

可通过 七牛云 注册账号,注册成功后,在创建 对象存储 前需要先完成 个人认证

Tips: 个人认证需要审核时间,审核成功后才能创建 对象存储

创建对象存储

创建流程:对象存储 -> 空间管理 -> 新建空间

绑定自定义 CDN 加速域名

空间管理 -> 域名 -> 绑定域名

将博客静态文件上传至七牛云

七牛云命令行工具下载安装

我们用的工具是由七牛云官方提供的 qshell 脚本。需下载对应操作系统的 qshell 压缩包文件,这里以 Mac 系统举例安装:

1
2
$ unzip qshell-darwin-x64-v2.4.2.zip
$ mv qshell-darwin-x64-v2.4.2 /usr/local/bin/qshell

工具安装完毕后,我们要将静态文件上传到七牛云需要使用 qshell 工具中的 qupload 命令,它可以通过指定配置文件进行数据同步操作。

qupload 配置文件

创建 qiniu-upload.json 配置文件,文件名称可自定义,内容如下:

1
2
3
4
5
6
{
"src_dir": "${path}/public",
"bucket": "${bucket}",
"overwrite": true,
"rescan_local": true
}
  • ${path} 是博客本地路径,这里指向生成静态文件目录 public
  • ${bucket} 是对应七牛云存储空间名称。
同步数据

在同步数据之前需要先创建七牛云账号,可通过 qshell account 命令创建。

1
$ qshell account <AccessKey> <SecretKey> <Name>
  • <AccessKey><SecretKey> 可前往七牛云 秘钥管理 查看,默认会有两对 KEY ,使用任意一对均可。
  • <Name> 是自定义的账号名称,主要用于切换账号。

执行以下命令,完成博客静态文件同步。

1
hexo generate && qshell qupload qiniu-upload.json
简化操作步骤

我们可以利用 npmscripts 优化操作流程:

package.json 文件 scripts JSON 块中,增加以下代码:

1
2
3
4
5
6
7
8
9
10
11
{
...
"scripts": {
"build": "hexo generate",
"clean": "hexo clean",
"deploy": "hexo deploy",
"server": "hexo server",
"qiniu": "hexo generate && qshell qupload qiniu-upload.json"
},
...
}

之后,我们可以就执行 npm run qiniu 命令完成数据同步了。

关于使用七牛云注意事项

  • 关闭 “欠费保护期“ 权益,以免产生超额费用。关闭方法:提交七牛云工单申请即可。

  • 同一身份证号最多可以创建两个七牛云账号。

  • 自定义域名一经绑定空间后,解绑后再次绑定其他账号的空间时,只能通过 域名找回 方式找回。

  • 计费方式详见

    • 标准存储每月免费空间:10GB
    • 标准存储每月免费 CDN 回源流量:10GB
    • 标准存储每月免费写请求 PUT/DELETE:10万次
    • 标准存储每月免费读请求 GET:100万次
    • 每月免费上传流量:无上限
    • 图片处理:每月20TB免费额度

我的七牛云折腾记实

我将博客静态页面与博客中使用的图片文件分别存储到了两个七牛云账号下,这样可以更大限度的使用七牛云免费提供的10GB存储空间,最大限度的避免缴纳超额费用。

博客若是放到一个存储空间配置很简单,但是要抽离出来图片单独存储配置起来就稍显繁琐了。

首先介绍下我的工作流:

  1. 通过 Typora 软件写 markdown 文章。
  2. 通过 hexo g 命令生成静态文件。
  3. 通过七牛云提供的 qshell qupload 命令行工具上传静态文件到存储空间 账号A

我的解决方案:

  1. 在第二步操作时,将由 Typora 创建的图片文件上传到七牛云存储空间 账号B
  2. 在第三步操作时,将由 Typora 创建的图片文件过滤后,上传至七牛云存储空间 账号A