将hexo博客一键部署到七牛云
一直有关注过七牛云。它的访问统计分析和CND加速功能让我很心动。正好之前用的服务器也快到期了。所以尝试着把博客部署到七牛云上。下面介绍一下将Hexo生成的页面部署到七牛云
准备
七牛云:
- 七牛云是云服务商,为用户提供免费的存储空间,CND加速,图片处理等功能。
- 注册七牛云,实名认证,创建储存空间,绑定域名,融合CDN,缓存设置等这里就不赘述了。
- shell是七牛提供的命令行上传工具,可以将本地的文件快速上传到七牛云
Hexo:
- 这个不用多说大家都知道是博客框架
安装使用qshell
下面介绍Mac系统下的安装和使用方法,其它系统可以参考文档
安装
该工具由于是命令行工具,所以只需要从上面的下载之后即可使用。其中文件名和对应系统关系如下:
文件名 | 描述 |
---|---|
qshell_linux_x86 | Linux 32位系统 |
qshell_linux_x64 | Linux 64位系统 |
qshell_windows_x86.exe | Windows 32位系统 |
qshell_windows_x64.exe | Windows 64位系统 |
qshell_darwin_x64 | Mac 64位系统,主流的系统 |
1)权限: 如果在Linux或者Mac系统上遇到Permission Denied的错误,请使用命令 chmod +x qshell_darwin_x64
来为文件添加可执行权限。qshell_darwin_x64
是上面的文件名,各个系统不一样
2)任何位置运行 对于Linux或者Mac,如果希望能够在任何位置都可以执行,那么可以把qshell所在的目录加入到环境变量$PATH中去。假设qshell命令被解压到路径/Users/coder/Downloads
目录下面,那么我们可以把如下的命令写入到你所使用的bash所对应的配置文件中,如果是/bin/bash,那么就是/.bashrc文件,如果是/bin/zsh,那么就是/.zshrc文件中。写入的内容为:
export PATH=$PATH:/Users/coder/Downloads
保存完毕之后,可以通过两种方式立即生效,其一为输入source ~/.zshrc或者source ~/.bashrc来使配置立即生效,或者完全关闭命令行,然后重新打开一个即可,接下来就可以在任何位置使用qshell命令了。
使用
添加密钥和账户名称
该工具有两类命令,一类需要鉴权,另一类不需要。
需要鉴权的命令都需要依赖七牛账号下的 AccessKey
, SecretKey
和 Name
。所以这类命令运行之前,需要使用 account
命令来添加 AccessKey ,SecretKey和Name 。 Name是用户可以自定义的字符串,用来唯一表示AccessKey/SecretKey账户,qshell会对添加的每一个账户信息加密保存,可以使用自命令user进行切换,切换账户的时候,需要使用账户唯一标识 Name。
$ qshell account <Your AccessKey> <Your SecretKey> <Your Name>
其中name表示该账号的名称, 如果ak, sk, name首字母是"-", 需要使用如下的方式添加账号, 这样避免把该项识别成命令行选项:
$ qshell account -- <Your AccessKey> <Your SecretKey> <Your Name>
添加完账户后,就可以使用qshell上传,下载文件了
更详细的信息也可以参考文档传送门
Hexo
现在我们可以在Hexo项目的根目录下创建upload.conf
文件
{
// 这个地址是根目录地址,不可使用相对路径
"src_dir": "/Users/coder/7coder/7coder-blog/public",
// 储存空间名称
"bucket": "7coder",
// 是否覆盖
"overwrite" : true,
// 检查新增文件
"rescan_local" : true
}
Hexo生成的静态页面全部放在public文件夹下,所以src_dir
应当是要以/public
结尾的。
接下来可以使用qshell来上传文件了
qshell qupload upload.conf
执行后就会打印出同步的文件,然后访问你的空间域名就可以了。
关于qupload命令可以阅读详细文档传送门
今后写完博客只需下面两条命令就可以完成部署了
hexo generate
qshell qupload upload.conf
一键部署
我们的目的是实现一键部署,但是上面使用了两条命令才搞定。
打开Hexo下的package.json,填入以下代码
"scripts":{
"publish": "hexo generate && qshell qupload upload.conf"
}
今后只需要 npm run publish
就可实现一键打包部署到七牛云啦~
附
- 如果上传成功但是访问无变化,可能是七牛的缓存原因。可以前往
域名管理
修改缓存配置 - 七牛云的默认访问会在域名后拼上
/index.html
,可以前往空间设置开启默认首页