全部產品
Search
文件中心

Object Storage Service:iOS刪除檔案

更新時間:Aug 28, 2024

本文介紹如何單個或者大量刪除檔案。

警告

檔案一旦刪除將無法恢複,請謹慎使用刪除操作。

注意事項

  • 使用本文樣本前您需要先通過自訂網域名、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];

相關文檔