我正在AWS S3存儲桶上運行網站。我不得不一次更新網站。目前,當我進行部署時,我只是將構建的文件複製到我的存儲桶並覆蓋現有的文件。AWS S3網站版本控制
有沒有辦法對這些部署進行一些版本控制?我知道有一個內置的版本控制S3,但它只適用於我認爲的單個文件。
最好的選擇是每個部署都使用git commit-id標記,如果需要的話我可以回滾到特定的commit-id。
任何想法?已經嘗試使用commit-id -prefix命名目錄,但問題是index.html必須存在於根目錄中。
我正在AWS S3存儲桶上運行網站。我不得不一次更新網站。目前,當我進行部署時,我只是將構建的文件複製到我的存儲桶並覆蓋現有的文件。AWS S3網站版本控制
有沒有辦法對這些部署進行一些版本控制?我知道有一個內置的版本控制S3,但它只適用於我認爲的單個文件。
最好的選擇是每個部署都使用git commit-id標記,如果需要的話我可以回滾到特定的commit-id。
任何想法?已經嘗試使用commit-id -prefix命名目錄,但問題是index.html必須存在於根目錄中。
您可以配置水桶使用下列任何一種方法的版本:使用亞馬遜S3控制檯
兩個控制檯和軟件開發工具包調用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。
感謝您的回答。我已經知道AWS提供的版本控制。我的問題更多地涉及到整個單一部署的版本控制。我希望看到帶有commit-id的部署版本,如果需要,我可以將我的網站回滾到某個特定點。我認爲你所說的版本是關於獨立文件的..? – ikenator
您的部署版本控制在Git中,而不是S3中。 S3不知道「部署」是什麼,只知道每個單獨文件的版本。要回滾部署,您需要檢出Git以前的提交,然後將其部署到S3。 –
是的,確切地說。我知道。這就是爲什麼我在尋找這種情況下文件的版本實體(如目錄)的解決方案。我必須爲非技術用戶提供一個簡單的解決方案,只需在AWS控制檯中執行一些單擊操作即可回滾以前的版本。 – ikenator
所以你知道S3不提供這樣的版本控制,而Git是最好的解決方案,但是你仍然想要一個不同的解決方案?你提到目錄版本控制,但S3甚至不支持目錄。您提到非技術用戶通過AWS控制檯執行某些操作,這聽起來像是有史以來最糟糕的想法。非技術用戶根本沒有業務登錄AWS控制檯。如果您希望非技術用戶可以使用回滾版本來構建某些內容,或者安裝第三方自動化部署工具,那麼您知道Git和S3部署。 –