hexo部署到阿里云OSS

整个过程分为三大步:

  1. 阿里云端准备:创建存放网站文件的“仓库”(OSS Bucket)和用于自动上传的“授权密钥”(RAM AccessKey)。

  2. Hexo 本地配置:安装一个专门的上传插件,并在博客配置文件中填入阿里云的信息。

  3. 一键部署与访问:执行部署命令,并设置通过域名访问你的博客。

第一步:阿里云端准备工作

1. 创建 OSS Bucket

Bucket(存储桶)就是你用来存放网站静态文件的那个“云端文件夹”。

  1. 登录 阿里云控制台。

  2. 在顶部搜索框中输入“对象存储OSS”,然后点击进入OSS管理控制台。

  3. 在左侧菜单栏选择 Bucket 列表,然后点击 创建 Bucket。

  4. 现在,请填写创建信息:

    • Bucket 名称:给你的 Bucket 取一个全局唯一的名字,只能包含小写字母、数字和短横线。例如 my-hexo-blog-xxxxx。

    • 地域:选择离你的访客最近的地域。如果你主要面向国内访客,选择中国大陆的任意地域即可(如 华东1 (杭州))。

    • 存储类型:选择 标准存储。

    • 读写权限:关键步骤! 请选择 公共读。这样互联网上的访客才能访问你的网站文件。

    • 其他选项保持默认即可。

  5. 点击 确定 创建 Bucket。

2. 创建用于部署的 AccessKey

为了安全,我们不直接使用你阿里云主账号的密钥。而是创建一个“子账号”(RAM用户),并只授予它管理这一个Bucket的权限。

  1. 在阿里云控制台顶部搜索框中输入“访问控制RAM”,点击进入。

  2. 在左侧菜单栏选择 身份管理 -> 用户,然后点击 创建用户。

  3. 填写用户信息:

    • 登录名称:给这个子账号取个名字,例如 hexo-deployer。

    • 显示名称:可以和登录名称一样。

    • 访问方式:关键步骤! 只勾选 使用永久 AccessKey 访问 调用访问。这表示该用户只能通过程序(比如Hexo插件)来访问,不能登录控制台。

  4. 点击 确定。

  5. 重要:保存密钥! 在“创建成功”的页面,你会看到 AccessKey ID 和 AccessKey Secret。请立即将它们复制并保存到你本地安全的地方(例如记事本),因为这个 Secret 只会显示这一次,关掉页面后就再也找不到了。

3. 为子账号授权

现在,我们需要告诉阿里云,刚刚创建的 hexo-deployer 这个用户,拥有操作我们之前创建的那个 Bucket 的权限。

  1. 回到 用户 列表,找到你刚刚创建的 hexo-deployer 用户,点击右侧的 添加权限。

  2. 在“添加权限”面板中,选择 系统策略。

  3. 在搜索框中搜索 AliyunOSSFullAccess,找到这个策略并点击它,然后点击确定。

    • (安全提示:AliyunOSSFullAccess 授予了管理所有OSS的权限。更精细化的做法是创建一个自定义策略,只允许它管理你指定的那个Bucket。但对于个人使用,这个策略已经足够方便且安全可控。)

至此,你已经拥有了部署所需的所有云端资源:

  • 一个 Bucket 名称

  • 一个地域(Region)的ID(例如 oss-cn-hangzhou)

  • 一个 AccessKey ID

  • 一个 AccessKey Secret

第二步:Hexo 本地配置

1. 安装部署插件

在你的 Hexo 博客根目录下,打开终端,运行以下命令来安装专门用于部署到阿里云OSS的插件:

1
npm install hexo-deployer-ali-oss --save

2. 配置 _config.yml

打开你博客根目录下的主配置文件 _config.yml,找到文件末尾的 deploy: 部分,将其修改为如下格式,并填入你在第一步中获取到的信息。

1
2
3
4
5
6
7
8
9
deploy:
type: ali-oss
region: <这里填你的 Region ID>
accessKeyId: <这里填你的 AccessKey ID>
accessKeySecret: <这里填你的 AccessKey Secret>
bucket: <这里填你的 Bucket 名称>
# 可选项,建议开启
headers:
Cache-Control: max-age=86400 # 缓存静态资源一天,提升访问速度

请将 <…> 部分替换为你自己的真实信息,例如:

1
2
3
4
5
6
7
8
deploy:
type: ali-oss
region: oss-cn-hangzhou
accessKeyId: LTAI5txxxxxxxxxxxxxxxx
accessKeySecret: Wd4mxxxxxxxxxxxxxxxxxxxxxxxx
bucket: my-hexo-blog-xxxxx
headers:
Cache-Control: max-age=86400

常见地域名称与 Region ID 对照表

1
2
3
4
5
6
7
8
地域名称            Region ID
华东 1 (杭州) oss-cn-hangzhou
华东 2 (上海) oss-cn-shanghai
华北 2 (北京) oss-cn-beijing
华南 1 (深圳) oss-cn-shenzhen
华南 3 (广州) oss-cn-guangzhou
西南 1 (成都) oss-cn-chengdu
中国 (香港) oss-cn-hongkong

第三步:一键部署与访问

现在,万事俱备,只欠东风。

1. 执行部署命令

在你的 Hexo 博客根目录下,运行经典的一键部署命令:

1
hexo clean && hexo g -d

或者分步执行:

1
2
3
hexo clean   # 清理旧文件
hexo generate # 生成静态网站到 public 文件夹
hexo deploy # 将 public 文件夹的内容上传到 OSS

当你看到终端显示 INFO Deploy done: ali-oss 时,就代表你的博客已经成功上传到阿里云OSS了!

2. 访问你的博客

  1. 通过OSS域名访问:

    • 回到阿里云OSS的 Bucket 列表,点击你的 Bucket 名称进入详情页。

    • 在左侧菜单选择 Bucket 配置 -> 域名管理。

    • 你会看到一个 OSS 访问域名,格式通常是 https://<你的bucket名>.<你的region>.aliyuncs.com。

    • 在浏览器中打开这个地址,你应该就能看到你的博客了!

  2. 设置自定义域名访问(强烈推荐):
    直接使用OSS的域名不方便记忆。既然你有备案域名,可以轻松地将域名指向这里。

    • 在刚才的 域名管理 页面,点击 绑定域名。

    • 输入你已经备案的域名(例如 blog.yourdomain.com)。

    • 阿里云会提供一个 CNAME 值,格式通常是 <你的bucket名>.<你的region>.aliyuncs.com。

    • 去你的域名解析服务商(例如阿里云的“云解析DNS”或腾讯云的“DNSPod”),为你的域名添加一条 CNAME 解析记录,将域名指向这个阿里云提供的 CNAME 值。

  • 等待几分钟,DNS解析生效后,你就可以通过自己的域名访问博客了!

3. (可选)开启 CDN 加速

为了让全国各地的访客访问速度都达到极致,你可以为这个OSS Bucket开启CDN加速。在阿里云控制台搜索“内容分发网络CDN”,按照引导添加你的域名,并将源站设置为你刚才的OSS Bucket域名即可。