手把手教你搭建博客

由于 github 访问不太稳定,觉得将博客迁移到 AWS 上。可以借助 AWS 存储的功能。

为什么选择 hexo

  • 生成页面速度快
  • 支持 markdown

  • 一键部署

  • 超强的扩展性

  • 海量的插件

创建博客

# 安装
npm install hexo-cli -g

# 创建博客
hexo init myblog
cd myblog
npm install

# 本地运行
hexo server

这短短的几步,博客便创建成功了。

安装部署工具

# 安装
npm install hexo-deployer-aws-s3 --save-dev
# 将部署配置放入 _config.yml
deploy:
  type: aws-s3             # 插件的名字
  region: us-east-1        # 存储桶所在区域
  bucket: my-bucket        # 存储桶名字

AWS 使用指南

AWS 存储介绍

S3 是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。首年使用会有 5 GB 的免费存储空空间。

接下来,就需要我们在 aws 上创建存储。

创建存储桶

保存后

此时,更新 deploy 配置

# 将部署配置放入 _config.yml
deploy:
  type: aws-s3             # 插件的名字
  region: ap-northeast-1   # 存储桶所在区域
  bucket: robinblog        # 存储桶名字

凭证

凭证的作用是为了获得 aws s3 存储的控制权限,便于部署静态网站。进入官方文档,需要生成凭证、配置策略、配置凭证。

生成凭证

  1. 登录 AWS Management Console,单击 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

  2. 在导航窗格中,选择 Users (用户)

  3. 选择要为其创建访问密钥的用户的名称,然后选择 Security credentials (安全凭证) 选项卡。

  4. 在 Access keys(访问密钥) 部分,选择 Create access key (创建访问密钥)

  5. 要查看新访问密钥对,请选择 Show (显示)。关闭此对话框后,您将无法再次访问该秘密访问密钥。您的凭证与下面类似:

    访问密钥 ID:AKIAIOSFODNN7EXAMPLE

    秘密访问密钥:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

  6. 要下载密钥对,请选择 Download .csv file (下载 .csv 文件)。将密钥存储在安全位置。关闭此对话框后,您将无法再次访问该秘密访问密钥。

  7. 下载 .csv 文件之后,选择 Close (关闭)。在创建访问密钥时,预设情况下,密钥对处于活动状态,并且您可以立即使用此密钥对。

凭证生成后,还必须拥有执行所需 IAM 操作的权限。具体配置流程,请参阅 IAM 用户指南中的访问 IAM 资源所需的权限,下面是我配置的相关策略

配置策略

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:*",
                "s3-object-lambda:*"
            ],
            "Resource": "*"
        }
    ]
}

配置凭证

aws 提供多种配置凭证的方式

  1. 从加载AWS Identity and Access Management适用于 Amazon EC2 的 (IAM) 角色

  2. 从共享凭证文件 (~/.aws/credentials) 加载

  3. 从环境变量加载

  4. 从磁盘上的 JSON 文件加载

  5. JavaScript 开发工具包提供的其他 credential-provider 类

我采取了方式 2 ,从共享凭证文件 (~/.aws/credentials) 加载

[default]
aws_access_key_id = <YOUR_ACCESS_KEY_ID>
aws_secret_access_key = <YOUR_SECRET_ACCESS_KEY>

看文档发现,可以通过 AWS CLI 配置凭证,安装操作官方文档很详细看这里,我们重点介绍下配置凭证的过程。

首次安装成功,命令行执行 aws configure 配置如下:

配置成功后,同样会在 ~/.aws/credentials 文件中创建对应的字段

至此,配置完成。

部署

# 构建
npm run build
# 部署
npm run deploy

发现报错,The bucket does not allow ACLs,还需要在存储中开启 ACLs

接下来要关闭「阻止共有访问操作」

再执行 npm run deploy,部署成功

访问配置

部署成功后,开启静态网站托管功能

访问域名 Hexo 成功

总结

部署确实很方便,但文档还是不太完善,文档中提到「获取凭证」的操作,其中配置 IAM 操作权限也是关键步骤,在文档中确一笔带过,如下图:

在这块花费了不少时间。

更多实操过程可参考 AWS入门_AWS入门使用教程_AWS云计算资源-AWS云服务

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值