本文介绍如何单个或者批量删除文件。
警告 文件一旦删除将无法恢复,请谨慎使用删除操作。
注意事项
删除文件时,您需要具有对Object所在Bucket的写权限。
删除单个文件
以下代码用于删除examplebucket中的exampleobject.txt文件。
OSSDeleteObjectRequest * delete = [OSSDeleteObjectRequest new]; // 填写Bucket名称。 delete.bucketName = @"examplebucket"; // 填写Object完整路径。Object完整路径中不能包含Bucket名称。 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名称。 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; }];