为静态网站设置 Amazon S3/Github 管道

Setting up Amazon S3/Github pipeline for static website

我有一个静态网站的 github 存储库。这是一个简单的项目结构,在根目录有一个 dist/ 和一个 src/ 文件夹,站点的 index.html 位于 dist/index.html。我正在尝试将其托管在 Amazon S3 存储桶中。

我设置了一个 AWS CodePipeline,将 github 存储库中的所有项目推送到 S3 存储桶,但问题是 index.html(以及站点的所有其他文件)当我希望它们位于存储桶的根部时,它们在 dist/ 中。所以你必须去 example-site.com/dist/index.html 才能访问该站点,所以你只需要去 example-site.com

所以 TLDR:github 存储库中的所有项目都被推送到 S3 存储桶,但我只想推送 dist/ 文件夹中的项目,我希望它们结束在桶的根部。有没有办法做到这一点?如果没有,是否有解决方法,使 example-site.com/dist 中的项目就像在 example-site.com 中一样提供?

所以你的代码是这样说的

example-site.com/dist/index.html

并且您希望它像这样,以便 index.html 可以用作静态网站:

example-site.com/index.html

如果您在 CodePipeline 中创建一个 lambda 函数,它会在代码检出到 S3 Bucket 后立即执行。 Lambda 函数将 运行 在您的 S3 存储桶上并将文件复制到上一级。

如下所示: