第二章:Amazon S3 + CloudFront

2025-02-03T17:50:56-05:00 | 3分钟阅读

@
第二章: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

© 2025 - 2026 Leona的田园牧歌

🌱 Powered by Hugo with theme Dream.

关于我

Leona

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