【最佳實踐】騰訊雲COS刪除文件和目錄的各種方法

  • 2019 年 12 月 21 日
  • 筆記

大家在使用COS存儲的過程中,會遇到一個場景:出於各種各樣的原因比如業務調整,需要清理COS當中的大量文件。騰訊雲支援多種多樣的清理方法,常見的方法如下:

  • 控制台手動刪除
  • COSCMD命令行工具刪除
  • 第三方工具
  • COSBrowser工具刪除
  • api和sdk刪除

下面就各個刪除方法匯總介紹一下:

1、登錄控制台進行刪除

可參考官網文檔

https://cloud.tencent.com/document/product/436/35247

https://cloud.tencent.com/document/product/436/13323

打開https://console.cloud.tencent.com/cos5/bucket頁面,點擊具體的bucket名稱,進入存儲桶介面

存儲桶介面

存儲桶介面內可以根據需要執行不同的刪除

某個bucket介面

ps:需要注意的是,如果選擇清空存儲桶,則執行完清空操作之前都不能退出頁面,對於文件量很大刪除較久的bucket不太適用,那麼對於文件量很大的bucket,如何執行刪除比較合適呢?請看接下來的另一個方式

2、使用COSCMD工具進行刪除

COSCMD工具獲取和使用介紹文檔https://cloud.tencent.com/document/product/436/10976

按照文檔安裝好工具之後,建議編輯~/.cos.conf文件設置好秘鑰和bucket資訊(如下),使用coscmd delete即可

COSCMD配置文件

刪除單個文件

#命令格式  coscmd delete <cospath>  #操作示例  coscmd delete 123/test.jpg

刪除目錄

#命令格式  coscmd delete -r <cospath>  #操作示例  coscmd delete -r /123/  coscmd delete -r /  該命令相當於清空bucket

ps:刪除操作屬於高危操作,數據刪除後不可找回,建議先創建一個測試bucket測試驗證之後再對線上bucket進行操作。COSCMD能實現的功能跟控制台提供的功能一樣,但是作為用戶來講,可能會有更細緻的刪除需求,比如刪除指定目錄之外的其他所有文件,這個怎麼實現呢?咱們來看一下另一種方法

3、使用aws的工具進行刪除

騰訊雲出於一些特殊原因,沒有支援太多的刪除方法,但是騰訊雲兼容了aws的s3對於cos的操作,下面我們簡單介紹下如何使用aws工具刪除cos指定目錄之外的文件(aws的s3刪除操作參考https://docs.aws.amazon.com/cli/latest/reference/s3/rm.html

1)首先需要自行安裝aws的cli工具(可到aws官網獲取),然後Shell 的配置文件腳本(這裡以 ~/.bash_profile為例)中將aws安裝目錄添加到環境變數中,比如export PATH=~/.local/bin:$PATH,然後執行source ~/.bash_profile,然後使用騰訊雲的ID和秘鑰執行aws configure設置,然後修改~/.aws/credentials為下述格式(主要是把default改為qcloud)

[qcloud]  aws_access_key_id = 騰訊雲api秘鑰的SecretId  aws_secret_access_key = 騰訊雲api秘鑰的SecretKey

2)使用命令行執行刪除:aws –profile=qcloud –endpoint-url=http://cos.此處填區域.myqcloud.com s3 rm s3://此處填bucketname-appid/ ,後邊加需要的參數(比如aws –profile=qcloud –endpoint-url=http://cos.ap-chengdu.myqcloud.com s3 rm s3://test1-1256699999/ –recursive –exclude "123/*" –exclude "234/*" 表示刪除ap-chengdu的1256699999帳號的test1這個bucket下123和234這兩個目錄之外的所有文件和目錄),執行效果如下

awscli執行效果圖

ps:由於是第三方的awscli工具,存在一定的不可控因素,進行刪除操作之前,建議先在測試用的bucket進行測試,確認無誤之後再對線上bucket進行操作

4、使用COSBrowser工具進行刪除

COSBrowser工具比較簡單,只需下載客戶端登錄執行操作即可,相關操作可以參考騰訊雲官網文檔介紹https://cloud.tencent.com/document/product/436/11366

ps:當bucket內文件和目錄數量很大的時候,COSBrowser工具可能需要手工點選很多次,還是推薦使用命令行工具進行處理

5、使用api和sdk進行刪除

可參考官網文檔介紹

api直達https://cloud.tencent.com/document/product/436/7751

sdk直達https://cloud.tencent.com/document/product/436/6474

最新版的api和sdk,沒有像舊版一樣提供專門的各種目錄操作,比較適合用於文件粒度的操作場景。

總體來講,執行目錄刪除比較便捷的方案是使用命令行工具,文件和目錄數量較小的時候可以使用控制台或者COSBrowser工具。