本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業(yè)務造成影響,請務必仔細閱讀。
您可以通過rm
命令刪除不再需要的文件(Object)、碎片(Part)或存儲空間(Bucket),以免產生不必要的存儲費用。
注意事項
要刪除單個文件,您必須具有
oss:DeleteObject
權限;要刪除目錄中的所有文件,您必須具有oss:DeleteObject
和oss:ListObjects
權限;要刪除指定版本的文件,您必須具有oss:DeleteObjectVersion
權限;要刪除所有版本的文件,您必須具有oss:ListObjectVersions
和oss:DeleteObjectVersion
權限;要刪除目錄下所有版本的文件,您必須具有oss:DeleteObjectVersion
和oss:ListObjects
權限;要刪除某個Object的碎片,您必須具有oss:ListMultipartUploads
和oss:AbortMultipartUpload
權限;要刪除所有Object和碎片,您必須具有oss:ListMultipartUploads
、oss:AbortMultipartUpload
、oss:ListObjects
和oss:DeleteObject
權限;要刪除Bucket,您必須具有oss:DeleteBucket
權限。從ossutil 1.6.16版本開始,命令行中Binary名稱支持直接使用ossutil,您無需根據系統刷新Binary名稱。如果您的ossutil版本低于1.6.16,則需要根據系統刷新Binary名稱。更多信息,請參見命令行工具ossutil命令參考。
當您在OSS ON云盒中使用該命令時:
將配置文件中的Endpoint替換為云盒Endpoint。更多信息,請參見云盒Endpoint。
在本文已有示例的基礎上添加--sign-version、--region以及--cloudbox-id選項。關于這三個選項的具體用法,請參見通用選項。
命令格式
ossutil rm oss://bucketname[/prefix]
[-r,--recursive]
[-b,--bucket]
[-m,--multipart]
[-a,--all-type]
[-f,--force]
[--include <value>]
[--exclude <value>]
[--version-id <value>]
[--all-versions]
[--payer <value>]
[--encoding-type <value>]
參數及選項說明如下:
配置項 | 說明 |
bucketname | Bucket名稱。 |
prefix | Bucket下的資源、例如目錄、文件等。 |
-r,--recursive | 如果指定該選項時,ossutil將刪除Bucket下所有符合prefix條件的Object。如果不指定該選項,則ossutil只刪除指定Object。 |
-b,--bucket | 僅在刪除Bucket時使用此選項。 |
-m,--multipart | 指定操作的對象為Bucket中未完成的Multipart事件。 |
-a,--all-type | 指定操作的對象為Bucket中符合prefix條件的Object和未完成的Multipart事件。 |
-f,--force | 強制操作,不進行詢問提示。 |
--include | 包含符合指定條件的所有Object。 更多信息,請參見include和exclude選項。 |
--exclude | 不包含任何符合指定條件的Object。 更多信息,請參見include和exclude選項。 |
--version-id | Object的指定版本。僅適用于已開啟或暫停版本控制狀態(tài)Bucket下的Object。 |
--all-versions | Object的所有版本。僅適用于已開啟或暫停版本控制狀態(tài)Bucket下的Object,且同一個刪除示例中僅允許選擇--version-id或--all-versions其中一個選項。 |
--payer | 請求的支付方式。如果希望訪問指定路徑下的資源產生的流量、請求次數等費用由請求者支付,請將此選項的值設置為requester。 |
--encoding-type | 對 |
刪除Object
Object刪除后無法恢復,請謹慎操作。
通過rm命令或者rm命令結合-r選項刪除單個或多個Object時,涉及調用ListObjects(GetBucket)以及DeleteObject請求,這兩類請求均產生Put類請求費用。更多信息,請參見請求費用。
如果您在刪除Object時同時包含了--include和--exclude選項,可能會由于規(guī)則的執(zhí)行方式產生誤刪除的情況,請謹慎操作。
一條規(guī)則可以包含多個include(包含)和exclude(排除)條件,且每個文件從左到右逐一運用每個規(guī)則,直至最后才能最終確定匹配的結果。當您需要使用多條規(guī)則時,建議使用先包含再排除的模式,即先指定--include,再指定--exclude。
刪除示例
刪除單個Object
刪除examplebucket下名為exampleobject.txt文件。
ossutil rm oss://examplebucket/exampleobject.txt
刪除examplebucket下與前綴test匹配的所有文件。
ossutil rm oss://examplebucket/test -r
刪除examplebucket下后綴為.png的所有文件。
ossutil rm oss://examplebucket --include "*.png" -r
刪除examplebucket下文件名包含abc,且后綴不是.jpg和.txt的文件。
ossutil rm oss://examplebucket --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -r
刪除已開啟版本控制的examplebucket下exampleobject.txt的指定版本。
ossutil rm oss://examplebucket/exampleobject.txt --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****
有關獲取Object所有版本的具體操作,請參見ls(列舉賬號級別下的資源)。
刪除已開啟版本控制的examplebucket下exampleobject.txt的所有版本。
ossutil rm oss://examplebucket/exampleobject.txt --all-versions
刪除已開啟版本控制的examplebucket下所有Object的所有版本。
ossutil rm oss://examplebucket --all-versions -r
返回結果
以上示例刪除成功后,返回結果中將包含刪除的Object個數以及完成刪除操作所用時長,示例如下:
Succeed: Total 8 objects. Removed 8 objects. 0.106852(s) elapsed
刪除Part
通過rm命令結合多個選項刪除Part時,涉及調用ListMultipartUploads、ListParts以及AbortMultipartUpload請求。其中,ListMultipartUploads以及ListParts請求產生Get類請求費用,AbortMultipartUpload請求產生Put請求費用。更多信息,請參見請求費用。
刪除示例
結合-m選項刪除examplebucket下exampleobject.txt中未完成的Multipart事件所產生的Part。
ossutil rm -m oss://examplebucket/exampleobject.txt
結合-m和-r選項遞歸刪除examplebucket下與指定前綴test匹配的所有文件中未完成的Multipart事件所產生的Part。
ossutil rm -m oss://examplebucket/test -r Do you really mean to remove recursively multipart uploadIds of oss://examplebucket/test(y or N)? y
結合-a和-r選項遞歸刪除examplebucket下與指定前綴src匹配的所有已上傳完成文件、以及未完成的Multipart事件所產生的Part。
ossutil rm oss://examplebucket/src -a -r Do you really mean to remove recursively objects and multipart uploadIds of oss://examplebucket/src(y or N)? y
返回結果
以上示例刪除成功后,返回結果中將包含刪除的Object數量、Part對應的UploadID數量以及完成刪除操作所用時長,示例如下:
Succeed: Total 1 objects, 3 uploadIds. Removed 1 objects, 3 uploadIds. 1.922915(s) elapsed
刪除Bucket
刪除不包含Object或Part的examplebucket。
ossutil rm oss://examplebucket -b Do you really mean to remove the Bucket: examplebucket(y or N)? y
返回結果中包含刪除的Bucket名稱以及完成刪除操作所用時長。
Removed Bucket: examplebucket 2.230745(s) elapsed
刪除examplebucket及其包含的所有Object和Part。
警告此操作將清除Bucket中的所有數據,且刪除后不可恢復。請謹慎操作。
ossutil rm oss://examplebucket -b -a -r Do you really mean to remove recursively objects and multipart uploadIds of oss://examplebucket(y or N)? y Do you really mean to remove the Bucket: examplebucket(y or N)? y
返回結果中包含刪除的Object數量、Part對應的UploadID數量、Bucket名稱完成刪除操作所用時長。
Succeed: Total 189 objects, 37 uploadIds. Removed 189 objects, 37 uploadIds. Removed Bucket: examplebucket 9.184193(s) elapsed
通用選項
當您需要通過命令行工具ossutil切換至另一個地域的Bucket時,可以通過-e選項指定該Bucket所屬的Endpoint。當您需要通過命令行工具ossutil切換至另一個阿里云賬號下的Bucket時,可以通過-i選項指定該賬號的AccessKey ID,并通過-k選項指定該賬號的AccessKey Secret。
例如您需要刪除另一個阿里云賬號下,華東2(上海)地域下目標存儲空間testbucket下的exampletest.png文件,命令如下:
ossutil rm oss://testbucket/exampletest.png -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
關于此命令的其他通用選項的更多信息,請參見通用選項。