Hexo托管到AWS S3
有点长,慢慢写
注册AWS
首先得有AWS吧,新账户有免费套餐,刚又新注册一个,没注册过的邮箱地址+信用卡即可,信用卡双币不成功的话试试单币种,免费套餐介绍
创建S3存储桶
创建前测个速,看哪个区域比较快就在哪个区域创建S3,测速网站
如果不用域名访问,存储桶名字随便,但是域名cname访问,存储桶名字必须和域名一样;
公开访问
创建过程记得打开公开访问,即取消“阻止所有公开访问”的对勾,其他没啥特别,过程不表;
启用静态托管网站
创建后,进入存储桶——权限——(最下面)静态网站托管——启用“静态网站托管”、托管类型选择”静态网站托管“、索引文件”index.html”
打开ACL
存储桶——权限——对象所有权——编辑——ACL已启用
IAM用户、权限和密钥
创建IAM用户,给予S3的权限,具体啥权限我没研究,就把S3所有权限都给了;
用户——添加权限——直接附加现有策略——搜S3选择“AmazonS3FullAccess“
安全证书——创建访问密钥,保存下来,后面aws cli会用到;
安装AWS CLI
这里下载AWS CLI安装,安装后重新打开cmd窗口,aws configure,提示输入ak和sk,就是上面下载的访问密钥,默认区域自己找,默认输出模式可以不填直接回车,这样aws cli就有了上面那个用户的密钥了,cli访问aws就有权限了;
安装 hexo-deployer-aws-s3
AWS设置好了,现在要给hexo安装 hexo-deployer-aws-s3插件,否则无法deploy到S3上;
在blog目录下,
1 | npm install hexo-deployer-aws-s3 --save-dev |
安装完毕还要去hexo的_config.yml里设置depoly,原来deploy是git,现在改成aws-s3,按照下面改就没问题,bucket和region当然是上面创建的bucket名和创建区域了,
1 | deploy: |
至此设置完毕;
测试下hexo d看是否部署到AWS S3成功,不成功试下hexo三联,还不行,回头再看一遍找问题吧。
题外话:同时部署到github pages和AWS S3上
没想到好办法,我是在blog文件夹下创建了两个yaml文件,分别是S3和git的,名字为_config-s3.yml和_config-git.yml,写了两个批处理
git.bat
1 | del _config.yml |
s3.bat
1 | del _config.yml |
最笨的办法了,就是想部署到哪里,就运行bat删除_config.yml然后把对应的配置文件复制成_config.yml