手把手教你搭建博客

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

Untitled.png

为什么选择 hexo

  • 生成页面速度快
  • 支持 markdown
  • 一键部署
  • 超强的扩展性
  • 海量的插件

创建博客

# 安装
npm install hexo-cli -g

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

# 本地运行
hexo server

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

Untitled 1.png

安装部署工具

# 安装
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 上创建存储。

创建存储桶

Untitled 2.png

保存后

Untitled 3.png

此时,更新 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 = 
aws_secret_access_key = 

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

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

Untitled 4.png

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

Untitled 5.png

至此,配置完成。

部署

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

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

Untitled 6.png

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

Untitled 7.png

再执行 npm run deploy,部署成功

Untitled 8.png

Untitled 9.png

访问配置

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

Untitled 10.png

Untitled 11.png

访问域名 http://robinblog.s3-website-ap-northeast-1.amazonaws.com/ 成功

Untitled 12.png

总结

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

Untitled 13.png

在这块花费了不少时间。

更多实操过程可参考https://aws.amazon.com/cn/getting-started/?nc2=h_ql_le_gs&trk=4601add5-b05e-40e5-86a4-84b8eec3a582&sc_channel=ba

你可能感兴趣的:(前端hexo云存储博客搭建)