搭建静态博客04:自动更新博客

2025-02-10T18:36:26-05:00 | 1分钟阅读 | 更新于 2025-02-10T18:36:26-05:00

@
搭建静态博客04:自动更新博客

Overview

在本地添加完新博文后,双击以下.sh脚本文件,自动运行代码,将public文件夹同步到S3,并刷新Cloudfront。如果网页没有刷新,可在Chrome中Ctrl+Shift+R刷新页面并清理缓存。

脚本hugo.sh

#!/bin/bash

# Set variables
BUCKET_NAME="your-s3-bucket-name"
DISTRIBUTION_ID="your-cloudfront-distribution-id"

# Step 1: Generate the Hugo site
cd "your_hugo_folder"
echo "Building Hugo site..."
hugo --minify

# Step 2: Sync files to S3
echo "Uploading to S3..."
aws s3 sync public/ s3://$BUCKET_NAME --delete

# Step 3: Invalidate CloudFront cache (optional but recommended)
echo "Invalidating CloudFront cache..."
aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths "/*"

echo "Deployment complete!"

Setup

安装aws

  • 下载AWS CLI 并安装下载了的.msi文件
  • 在powershell中运行aws --version确认是否安装成功

创建policy

  • IAM Dashboard → Policies → Create policy → JSON 粘贴以下内容
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::your-s3-bucket-name",
                "arn:aws:s3:::your-s3-bucket-name/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "cloudfront:CreateInvalidation",
            "Resource": "arn:aws:cloudfront::your-account-id:distribution/your-cloudfront-distribution-id"
        }
    ]
}

创建User

  • IAM Dashboard -> Users → Add users
  • Attach policies directly -> 搜索上一步创建的policy名字 -> Next -> Create user

获取Access Key ID和Secret Access Key

  • user -> your_user_name -> Create access key -> Command Line Interface (CLI) -> 复制或下载csv文件

在本地设置aws

  • 在powershell中输入aws configure
  • 输入以下信息
    • AWS Access Key ID → (从上一步复制)
    • AWS Secret Access Key → (从上一步复制)
    • Default region → e.g., us-east-1, us-east-2
    • Output format -> 回车
  • 运行aws s3 ls以验证是否设置正确

运行

成功配置aws后,双击hugo.sh文件就能自动更新博客啦。

© 2025 - 2026 Leona的田园牧歌

🌱 Powered by Hugo with theme Dream.

关于我

Leona

  • 女的。
  • INFJ。
  • 长毛象链接点这里!
  • 做了八年数据科学家,但是每次管自己叫”科学家“,都很羞愧。职业+J人,习惯把日常生活数据化。
  • 玩了十几年相机,三十岁以前拍人像擅长无痕修图,三十岁以后拍动物植物大自然。
  • 厌倦城市,旅行目标大多是看动物。
  • 嘴太叼,不好吃宁愿饿着,还好手艺不错,不会饿死自己。
  • 没体能天赋,从小长跑最后一名,但是热爱运动,练过跑步、举铁、泰拳、网球、crossfit,现在重心转向功能性训练。
  • 现阶段人生目标是找个山头归隐,自给自足,田园牧歌,种菜养花,遛猫逗狗,养鸡喂牛。