本文介紹如何單個或者大量刪除檔案。
警告
檔案一旦刪除將無法恢複,請謹慎使用刪除操作。
注意事項
使用本文樣本前您需要先通過自訂網域名、STS等方式建立OSSClient,具體請參見初始化。
刪除檔案時,您需要具有對Object所在Bucket的寫入權限。
刪除單個檔案
以下代碼用於刪除examplebucket中的exampleobject.txt檔案。
OSSDeleteObjectRequest * delete = [OSSDeleteObjectRequest new];
// 填寫Bucket名稱,例如examplebucket
delete.bucketName = @"examplebucket";
// 填寫不包含Bucket名稱在內的Object完整路徑,例如exampleobject.txt。
delete.objectKey = @"exampleobject.txt";
OSSTask * deleteTask = [client deleteObject:delete];
[deleteTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
// ...
}
return nil;
}];
// 實現同步阻塞等待任務完成。
// [deleteTask waitUntilFinished];
大量刪除檔案
大量刪除檔案時,每次最多刪除1000個檔案。
返回結果包括如下兩種模式,預設返回模式為簡單模式,請根據實際選擇返回模式。
詳細模式(verbose):設定quiet為NO,表示返回所有刪除的檔案清單。
簡單模式(quiet):未設定quiet或者設定quiet為YES,表示只返回刪除失敗的檔案清單。
以下代碼用於刪除examplebucket中指定的多個檔案且只返回刪除失敗的檔案清單。
OSSDeleteMultipleObjectsRequest *request = [OSSDeleteMultipleObjectsRequest new];
// 填寫Bucket名稱,例如examplebucket。
request.bucketName = @"examplebucket";
// 填寫需要刪除的多個Object完整路徑,Object完整路徑中不能包含Bucket名稱。
request.keys = @[@"exampleobject.txt", @"testfolder/sampleobject.txt"];
// 設定為簡單模式,只返回刪除失敗的檔案清單。
request.quiet = YES;
OSSTask * deleteMultipleObjectsTask = [client deleteMultipleObjects:request];
[deleteMultipleObjectsTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
OSSDeleteMultipleObjectsResult *result = task.result;
NSLog(@"delete objects: %@", result.deletedObjects);
} else {
NSLog(@"delete objects failed, error: %@", task.error);
}
return nil;
}];
// 實現同步阻塞等待任務完成。
// [deleteTask waitUntilFinished];
相關文檔
刪除單個檔案
關於刪除單個檔案的API介面說明,請參見DeleteObject。
大量刪除檔案
關於刪除多個檔案的API介面說明,請參見DeleteMultipleObjects。
關於初始化OSSClient,請參見如何初始化OSSClient執行個體。