各位先深呼吸,因為今天要講的不是什麼太艱難的東西,而是 Amazon S3 版本控管 (Versioning) ,一個能讓你誤刪檔案後,還能假裝自己沒事的功能。
沒錯,這東西就像 Git 一樣,專門拿來對付「誰把檔案刪掉啦!!!」的慘劇。
S3 的 bucket 就像工程師的職涯,有三種狀態:
進到 S3 的 bucket 設定,把 版本控管 打開。
這就像開啟「自動存檔」功能,雖然會讓硬碟哭,但能救你下次不小心 rm -rf
的時候。
先在 Bucket 清單中,選擇您要啟用版本控制的 Bucket 名稱。
再選擇 Properties (屬性)。
在 Bucket Versioning 設定中,選擇 Edit (編輯)。
將 Enable (啟用)選起來,然後選擇 Save changes (儲存變更),這樣就完成啦!是不是很簡單。
如果之後想要暫停版本控管功能的話,一樣到這裡來選擇 Suspend (暫停) 就可以了。
要注意的是版本控管的功能一旦啟用後,就只能暫停,沒有關閉的選項,後面我們會講怎麼把舊版本的檔案刪除。
版本控管功能開起來後,在平常的使用上是相同的,
只要將要上傳的檔案從檔案總管裡拖拉到 S3 控制界面的物件清單畫面就會看到上傳功能準備接收檔案囉!如下圖
檔案拉進來後,就會出現上傳清單,確認要上傳的檔案沒錯後,再點選右下角的 Upload。就會進行檔案上傳了。
檔案上傳成功後,界面會出現綠色的標示告知上傳檔案成功。最後點選 Close 按鍵回到檔案清單就可以了。
版本控管下對同一個檔名的檔案上傳多次時,並不會覆寫目前的版本,而是將相同檔名的檔案以不同的版本 ID 都保存下來。
這句文言文的意思就是啟用版本控管後,你再上傳同名檔案,它不會幫你覆蓋舊檔案,而是給你一個新的版本 ID,像開分支一樣全收好。
這就像老闆每週都改需求,但你至少還能翻回去看「上禮拜到底是誰說要做這樣的?」。
同名檔案在 S3 的物件清單裡還是只能看到最新上傳的版本,要怎麼才能看到全部版本的檔案呢?
這時就要注意一個 S3 界面上的小細節了,參考下面的截圖,有沒有發現界面上突然多出了一個 Show versions(顯示版本) 的可開啟選項。
對!!就是那道光(咳~這個梗有點老)!!
那就是看到全部版本檔案的關鍵,當我們把它開起來後,就會看到另一個世界(顯示界面)。
可以看到物件的顯示出現了像樹狀圖的分支,仔細看其中的資訊,就能明白哪個最新版本的物件,哪個又是舊版本的檔案。
什麼!!能不能像 Git 一樣
一般情況下刪除物件檔案的基本操作,只要在控制界面上選擇要刪除的物件檔案後再點選中間位置的 Delete 按鍵,就可以把物件檔變不見了。
注意:在啟用版本控管功能下的刪除物件檔案並不是真的刪除乾淨,只是將檔案註記為刪除,並沒有真的將檔案刪掉
那啟用版本控管下要怎麼真的將物件檔案刪除呢?聰明的小夥伴應該已經想到了,是不是先將 Show versions 功能開啟後再做刪除的動作呢?
答案是的!!是不是也很簡單,只要觀念通了,事情就順了。
開啟 Show versions 後就能看到全部版本的物件檔案,再將要刪除的物件檔案選起來,再選 Delete ,如下圖!
點下 Delete 後會看到以下的畫面,上方是一個警示訊息,主要是提醒你兩件事。
permanently delete
- 就是永久刪除的意思。最後點選右下角的 Delete Objects ,毀滅物件的飛彈就會發射將物件擊毀了。依照這樣的操作邏輯,如果我不是要刪除某個版本的物件檔案。而是要取出某個版本的物件檔案,是不是可以用一樣的操作,但最後不要選 Delete ,而是選擇了 Download ,就能下載到之前的版本呢?能聯想到這裡的小夥伴真是太厲害了,是的~~ 。就是這樣用的哦!!!
如果
說明怎麼暫停版本控管的功能
注意事項:您可以在 Bucket 層級啟用和暫停版本控制。 Bucket 的版本控制一旦啟用,就無法再回復為未使用版本控制狀態。不過,您可以暫停 Bucket 的版本控制。
今天的閒聊就先到這邊,明天讓我們來聊聊 S3 生命週期設定
參考資料:Amazon S3 使用者指南官方文件 - https://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/Welcome.html