AWS S3网站版本控制

时间:2016-08-19 11:12:21

标签: amazon-web-services amazon-s3 deployment aws-sdk

我正在AWS S3存储桶上运行一个网站。我必须偶尔更新一下这个网站。目前,当我进行部署时,我只是将构建的文件复制到我的存储桶并覆盖现有文件。

有没有办法在这些部署上进行一​​些版本控制?我知道有一个内置的版本控制S3,但它只适用于我认为的单个文件。

最好的选择是每个部署都使用git commit-id标记,如果需要,我可以回滚到特定的commit-id。

有什么想法吗?已经尝试使用commit-id -prefix命名目录,但问题是index.html必须存在于root目录中。

3 个答案:

答案 0 :(得分:0)

您可以使用AWS CodePipeline,并使用git reverts管理回滚。请参阅this github repository中的cloudformation堆栈,以在s3 / cloudfront上建立一个类似网站的网站。

答案 1 :(得分:0)

如果您想对非技术用户使用某种解决方案,这些解决方案仅通过在AWS控制台中执行一些单击操作就可以回滚以前的版本,则可以尝试更改Index document config。

例如,您在存储桶中具有如下结构:

  • bucket / v1 / index.html
  • bucket / v2 / index.html
  • ...
  • bucket / vN / index.html

这意味着,您只能在存储桶属性->静态网站托管->索引文档->中将配置从v2 / index.html更改为v1 / index.html。

“仅在AWS控制台中执行一些单击操作”之类的声音

答案 2 :(得分:-1)

您可以使用以下任一方法配置存储桶版本控制:

  • 使用Amazon S3控制台配置版本控制。
  • 使用AWS开发工具包以编程方式配置版本控制

控制台和SDK都调用Amazon S3提供的REST API来管理版本控制。

注意

如果需要,您还可以直接从代码中调用Amazon S3 REST API。但是,这可能很麻烦,因为它需要您编写代码来验证您的请求。

您创建的每个存储桶都有一个与之关联的版本控制子资源(请参阅Bucket Configuration Options)。默认情况下,您的存储桶是无版本的,因此版本控制子资源存储空版本控制配置。

<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
</VersioningConfiguration>

要启用版本控制,请使用包含状态的版本控制配置向Amazon S3发送请求。

<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
  <Status>Enabled</Status> 
</VersioningConfiguration>

要暂停版本控制,请将状态值设置为“已暂停”。

更多信息here