2016-08-19 133 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