将博客部署到阿里云OSS
最近网站备案通过了, 准备把博客部署到国内的节点, 使访问更快些. 之前部署在CODING Pages和GitHub Pages, 感觉太慢了. 然后发现阿里云的OSS比腾讯云的要便宜一些, 所以就选择了阿里云.
准备
- 一个已经开通了阿里云对象存储的账号
- 一个已经备案的域名
安装插件
已经有人写好插件了, 那就直接用.
1 | npm install hexo-deployer-cos-cdn --save |
更改Hexo配置文件
在_config.yml里, 更改deploy
的属性.
1 | deploy: |
按照插件的文档文档写, type
固定为cos-cdn
, cloud
可填aliyun
或tencent
, 分别是阿里云的OSS和腾讯云的COS. bucket
填存储桶的名字, region
是存储桶的地域,进入相应存储桶控制台时, 应该可以在浏览器的地址栏里找到, 具体看帮助文档. cdnEnable
为true
时, 如果存储桶开启了CDN加速, 会在上传时自动刷新CDN缓存. updatePosts
为true
时, 在上传时会将Markdown源文件里图片路径替换成在图床(CDN)上的路径, 具体看imageConfig
的设置. deleteExtraFiles
为true
时, 会在上传时, 删除那些多余的文件.
imageConfig
用于设置网站静态文件与图片文件分别存储, 需设置updatePosts
为true
. 它里面的部分参数与之前参数是一致的, 区别就是存储桶不一样. folder
是本地图片存放的位置, 相对于[博客根目录]/source
目录, 会根据这个地址来选择那些图片路径是需要被替换的. cdnUrl
是图床存储桶绑定的CDN加速域名, 替换时会使用到它.
接下来具体说明如何获取secretId
和secretKey
.
首先进入RAM访问控制控制台, 创建新用户.
然后返回, 选择添加权限.
搜索OSS相关权限, 添加. 如果存储桶开启了CDN, 并且cdnEnable
为true
, 则需要添加CDN相关权限.
最后复制到配置里即可.
测试
命令行输入hexo deploy
测试是否起效.
注意
网站的存储桶可能需要修改静态网页选项设置, 来开启访问子目录时自动转到子目录的默认主页的功能. 因为Hexo生成页面链接时似乎不会添加index.html
到链接尾部, 不开通就有可能无法访问. 存储桶的静态网页设置可能还需要修改404跳转规则, 具体查看官方文档.