本文介绍如何单个或者批量删除文件。
警告 请您谨慎使用删除操作,文件一旦删除将无法恢复。
删除单个文件
以下代码用于删除单个文件:
using Aliyun.OSS; // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。 var endpoint = "yourEndpoint"; // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。 var accessKeyId = "yourAccessKeyId"; var accessKeySecret = "yourAccessKeySecret"; var bucketName = "examplebucket"; var objectName = "exampleobject.txt"; // 创建OssClient实例。 var client = new OssClient(endpoint, accessKeyId, accessKeySecret); try { // 删除文件。 client.DeleteObject(bucketName, objectName); Console.WriteLine("Delete object succeeded"); } catch (Exception ex) { Console.WriteLine("Delete object failed. {0}", ex.Message); }
批量删除文件
批量删除文件时,每次最多删除1000个文件。
返回结果包括如下两种模式,默认返回模式为详细模式,请根据实际选择返回模式。
- 详细模式(verbose):未设置quietMode或者设置quietMode为false,表示返回所有删除的文件列表。
- 简单模式(quiet):设置quietMode为true,表示只返回删除失败的文件列表。
以下代码用于删除examplebucket中指定的多个文件。
using Aliyun.OSS; // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。 var endpoint = "yourEndpoint"; // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。 var accessKeyId = "yourAccessKeyId"; var accessKeySecret = "yourAccessKeySecret"; var bucketName = "examplebucket"; // 创建OssClient实例。 var client = new OssClient(endpoint, accessKeyId, accessKeySecret); try { // 设置需要删除的多个文件完整路径。文件完整路径中不能包含Bucket名称。 var keys = new List<string>(); keys.Add("exampleobject.txt"); keys.Add("testdir/sampleobject.txt"); // 设置为详细模式,返回所有删除的文件列表。 var quietMode = false; var request = new DeleteObjectsRequest(bucketName, keys, quietMode); // 删除多个文件。 var result = client.DeleteObjects(request); if ((!quietMode) && (result.Keys != null)) { foreach (var obj in result.Keys) { Console.WriteLine("Delete successfully : {0} ", obj.Key); } } Console.WriteLine("Delete objects succeeded"); } catch (Exception ex) { Console.WriteLine("Delete objects failed. {0}", ex.Message); }
批量删除文件的完整代码请参见GitHub。