搭建静态博客02:Amazon S3+CloudFront

2025-02-03T17:50:56-05:00 | 1分钟阅读 | 更新于 2025-02-03T17:50:56-05:00

@
搭建静态博客02:Amazon S3+CloudFront

在本地用Hugo生成静态页面的下一步,就是部署,这样大家才能在网上看到我们的静态网站。

Why Amazon

部署的方式/平台有很多,比如Github Pages,Vercel,AWS等等。我最后选择了Amazon的AWS,因为我的本职工作日常使用的环境是AWS,比较熟悉。我有大量照片需要保存和展示,需要建立自己的图床,不如就把所有的需求都集中在一个地方解决。而且AWS的服务价格非常便宜,普通人日常使用的频率流量都不会达到收费的标准,第一年还可以免费使用

What(复制来的)

  • AWS S3

AWS S3 是一个弹性、高扩展的对象存储服务。它可以存储任何类型的数据,包括图片、音频、视频、文档等等。用户可以在 AWS 控制台中轻松地创建和管理存储桶,上传和下载数据,进行权限管理和数据备份等操作。S3 的可用性和耐久性非常高,可以保证数据的安全和可靠性。

  • AWS CloudFront

AWS CloudFront 是一个全球内容分发网络,可以帮助用户加速静态和动态内容的分发。用户可以将静态和动态内容存储在 S3 中,并通过 CloudFront 分发到全球各地的用户。CloudFront 可以自动缓存内容,提高访问速度,同时保证内容的安全性和可靠性。用户可以在AWS控制台中轻松创建和管理分发,设置缓存策略、安全性控制和报告等。

How To

简易版本:仅在S3上部署网站

  • 进到 s3,建立一个Bucket。Bucket name填写域名,不过如果愿意使用默认链接的话,随意取一个名字就行。其余设置选择默认选项,先完成创建。
  • 创建成功后,进入Bucket设置。
    • 点击preperties,找到网页最下方启用静态网站托管(Static website hosting), 设定索引文件(index.html)以及错误文件(404.html)。这两个文件的名称需要和你的Hugo文件夹下的public文件夹下的两个对应文件名字一致。
    • 点击permission,将封锁公有存取权(Block public access (bucket settings))的这项设定,预设为打勾的选项取消勾选。顾名思义,只有设置公开,大家才能看得到。
    • 依旧是permission页面,设置Bucket policy
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "PublicReadGetObject",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::your-bucket-name/*"  -- 将your-bucket-name替换你自己的Bucket名字,你可以在填写policy这个cell的左上角找到resource信息
            }
        ]
    }
    
  • 设置完毕后,点击object,上传你的Hugo文件夹下的public文件夹下的所有文件。
  • 点击preperties,找到网页最下方Bucket website endpoint,点击链接就能看到你的个人博客啦。
  • ref:AWS — S3 架设静态网站

进阶版本:在CloudFront上部署网站

完整版本:注册及配置域名

  • 还不想付钱,暂时没弄 😼

Q&A

  1. 我在S3更新的博客,但是在CloudFront看到的还是旧的页面,怎么办?
    • CloudFront的原理就是读取缓存,所以默认24小时才会更新。我们需要人工删除cache。
    • 点击distribution ➡️ invalidation ➡️ create invalidation,输入需要更新的文件路径。如果所有文件都需要替换,输入/*
    • ref: AWS cloudfront not updating on update of files in S3

Next Steps

  • 进一步修改hugo.toml配置文件, 更新about/me.md个人介绍页面。
  • hugo deploy指令上传到Amazon S3,备份原始代码至Github

© 2025 - 2026 Leona的田园牧歌

🌱 Powered by Hugo with theme Dream.

关于我

Leona

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