如何刪除 amazon/s3 空的目錄? remove amazon s3 empty folder
2015 Oct 03 未分類
有時候是這樣
如果你不是很熟一個系統的機制
你就會用奇怪的方式(甚至是錯誤的方式)來處理問題
因為我都把虛擬主機的備份檔往 amazon/s3 塞
日積月累塞了很大量的檔案
以成本來說 塞個一兩年的份量都不成問題
但是其實沒必要放這麼久
我都只放四個月而已
s3 galicer 是最便宜的方案
但一旦轉換成 galicer 的模式
無法隨時存取
想存取要先"解凍"
所以我會先把檔案放在一般狀態 7天
7天後自動進入 galicer 模式
然後 galicer 規定至少要放90天 (還100天) 才能刪檔案
所以如果要刪檔 要過90天
如果提前刪檔 會被收取額外的費用
所以我抓 120 天左右(四個月)
為了刪超過 120天 的檔案
我得寫個刪檔程式
結果寫好以後
有人跟我說
上傳的時候其實就可以建立 expiration 的設定
到期就會自動刪除
(我印象中之前寫的時候沒這個 應該是後來才加的)
所以刪除的機制根本就白寫
好 那就算了
刪完檔案
我主觀的認為
某個主機帳號如果已經被刪掉
就不會有新的備份檔
那舊的備份檔過四個月 就會被全部刪掉
應該會有個資料夾是空的
於是我上網查 怎麼刪掉資料夾
結果是查不到
很納悶
後來我想有可能不是這樣做的
我就到 s3 的空間看
印象中已經被我刪掉的空間 (四個月以前的)
看看有沒有空的資料夾
結果是沒有
因為 s3 的 folder 是一個虛擬的概念
所有檔案的路徑 其實只是跟檔案名稱一樣 是一個 key 而已
所以 s3 並沒有分 檔案名稱/路徑名稱
而是整個路徑+檔案名稱 就是一個 key
所以根本沒 folder 這種東西
某個路徑的所有檔案砍光
自然就沒這個 folder 了
所以也不用寫了 (耶)
其實滿多時候
我們會用我們主觀的方式 想去處理一個問題
但是會發現很難做
或是根本做不到
這時候不要硬著照自己的意思做
應該是去找熟這方面的人
請問他們會怎麼做
有些時候 自己的方法根本就很蠢
或是人家根本不這麼做
而是繞過這個問題 用更好的方法做掉了