分享

手把手教你搭建博客

本帖最后由 pig2 于 2023-9-7 11:04 编辑

由于 github 访问不太稳定,决定将博客迁移到亚马逊云科技 上。
1.png
然后接着就是服务器的选择,可以借助 亚马逊云科技——存储的功能。,由于没有多少预算,哎没钱啊,正在苦恼的时候,竟然看到亚马逊云免费试用主机,可以免费使用一年,省一年的服务器费。太适合我这个网站了。当前访问量小,以后大了在想扩容的事情。国内的云主机,从几百到几千,就不太划算。

接着下面搭建博客的思路

1.png
为什么选择 hexo
  • 生成页面速度快
  • 支持 markdown
  • 一键部署
  • 超强的扩展性
  • 海量的插件

创建博客

  1. # 安装
  2. npm install hexo-cli -g
  3. # 创建博客
  4. hexo init myblog
  5. cd myblog
  6. npm install
  7. # 本地运行
  8. hexo server
复制代码
这短短的几步,博客便创建成功了。


2.png

安装部署工具

  1. # 安装
  2. npm install hexo-deployer-aws-s3 --save-dev
复制代码

  1. # 将部署配置放入 _config.yml
  2. deploy:
  3.   type: aws-s3             # 插件的名字
  4.   region: us-east-1        # 存储桶所在区域
  5.   bucket: my-bucket        # 存储桶名字
复制代码

亚马逊云存储介绍
S3 是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。首年使用会有 5 GB 的免费存储空空间。
接下来,就需要我们在 亚马逊云上创建存储。

创建存储桶

3.png

保存后

4.png

此时,更新 deploy 配置

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


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


生成凭证
  • 登录 AWS Management Console,单击 console.aws.amazon.com/iam/ 打开 IAM 控制台。
  • 在导航窗格中,选择 Users (用户) 。
  • 选择要为其创建访问密钥的用户的名称,然后选择 Security credentials (安全凭证)  选项卡。
  • 在 Access keys(访问密钥)  部分,选择 Create access key (创建访问密钥) 。
  • 要查看新访问密钥对,请选择 Show (显示 ) 。关闭此对话框后,您将无法再次访问该秘密访问密钥。您的凭证与下面类似:访问密钥 ID:AKIAIOSFODNN7EXAMPLE。秘密访问密钥:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
  • 要下载密钥对,请选择 Download .csv file (下载 .csv 文件) 。将密钥存储在安全位置。关闭此对话框后,您将无法再次访问该秘密访问密钥。
  • 下载 .csv 文件之后,选择 Close (关闭) 。在创建访问密钥时,预设情况下,密钥对处于活动状态,并且您可以立即使用此密钥对。

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

配置策略
  1. {
  2. "Version": "2012-10-17",
  3. "Statement": [
  4. {
  5. "Sid": "VisualEditor0",
  6. "Effect": "Allow",
  7. "Action": [
  8. "s3:*",
  9. "s3-object-lambda:*"
  10. ],
  11. "Resource": "*"
  12. }
  13. ]
  14. }
复制代码

配置凭证
亚马逊云提供多种配置凭证的方式

  • 从加载AWS Identity and Access Management适用于 Amazon EC2 的 (IAM) 角色
  • 从共享凭证文件 (~/.aws/credentials) 加载
  • 从环境变量加载
  • 从磁盘上的 JSON 文件加载
  • JavaScript 开发工具包提供的其他 credential-provider 类

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

  1. [default]
  2. aws_access_key_id = <YOUR_ACCESS_KEY_ID>
  3. aws_secret_access_key = <YOUR_SECRET_ACCESS_KEY>
复制代码

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

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

5.png

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

6.png

至此,配置完成。


部署
  1. # 构建
  2. npm run build
  3. # 部署
  4. npm run deploy
复制代码
发现报错,The bucket does not allow ACLs,还需要在存储中开启 ACLs


7.png

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


8.png

再执行 npm run deploy,部署成功


9.png

10.png


访问配置
部署成功后,开启静态网站托管功能


11.png

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


12.png

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


13.png

在这块花费了不少时间。




加微信w3aboutyun,可拉入技术爱好者群

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条