2016-08-19 140 views
3

我正在AWS S3存储桶上运行网站。我不得不一次更新网站。目前,当我进行部署时,我只是将构建的文件复制到我的存储桶并覆盖现有的文件。AWS S3网站版本控制

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

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

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

+1

您的部署版本控制在Git中,而不是S3中。 S3不知道“部署”是什么,只知道每个单独文件的版本。要回滚部署,您需要检出Git以前的提交,然后将其部署到S3。 –

+0

是的,确切地说。我知道。这就是为什么我在寻找这种情况下文件的版本实体(如目录)的解决方案。我必须为非技术用户提供一个简单的解决方案,只需在AWS控制台中执行一些单击操作即可回滚以前的版本。 – ikenator

+0

所以你知道S3不提供这样的版本控制,而Git是最好的解决方案,但是你仍然想要一个不同的解决方案?你提到目录版本控制,但S3甚至不支持目录。您提到非技术用户通过AWS控制台执行某些操作,这听起来像是有史以来最糟糕的想法。非技术用户根本没有业务登录AWS控制台。如果您希望非技术用户可以使用回滚版本来构建某些内容,或者安装第三方自动化部署工具,那么您知道Git和S3部署。 –

回答

-1

您可以配置水桶使用下列任何一种方法的版本:使用亚马逊S3控制台

  • 配置版本。
  • 配置版本控制编程方式使用AWS的SDK

两个控制台和软件开发工具包调用REST API亚马逊S3提供管理版本。

注意

如果需要,您还可以在亚马逊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

+0

感谢您的回答。我已经知道AWS提供的版本控制。我的问题更多地涉及到整个单一部署的版本控制。我希望看到带有commit-id的部署版本,如果需要,我可以将我的网站回滚到某个特定点。我认为你所说的版本是关于独立文件的..? – ikenator