删除文件
删除单个文件:
您可以通过OSSClient.deleteObject删除单个文件。
- // endpoint以杭州为例,其它region请按实际情况填写
- String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
- // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建
- String accessKeyId = "<yourAccessKeyId>";
- String accessKeySecret = "<yourAccessKeySecret>";
- // 创建OSSClient实例
- OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
- // 删除Object
- ossClient.deleteObject("<bucketName>", "<key>");
- // 关闭client
- ossClient.shutdown();
删除多个文件:
您可以通过OSSClient.deleteObjects批量删除文件。
- public DeleteObjectsResult deleteObjects(DeleteObjectsRequest deleteObjectsRequest)
每次最多删除1000个Object,并提供两种返回模式:详细(verbose)模式和简单(quiet)模式:
- 详细模式:返回的成功删除Object的结果,即DeleteObjectsResult.getDeletedObjects,默认模式;
- 简单模式:返回的删除过程中出错的Object结果,即DeleteObjectsResult.getDeletedObjects。
DeleteObjectsRequest可设置参数如下:
DeleteObjectsResult的参数如下:
- // endpoint以杭州为例,其它region请按实际情况填写
- String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
- // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建
- String accessKeyId = "<yourAccessKeyId>";
- String accessKeySecret = "<yourAccessKeySecret>";
- // 创建OSSClient实例
- OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
- // 删除Objects
- List<String> keys = new ArrayList<String>();
- keys.add("key0");
- keys.add("key1");
- keys.add("key2");
- DeleteObjectsResult deleteObjectsResult = ossClient.deleteObjects(new DeleteObjectsRequest("<bucketName>").withKeys(keys));
- List<String> deletedObjects = deleteObjectsResult.getDeletedObjects();
- // 关闭client
- ossClient.shutdown();
提示:
拷贝文件
在同一个区域(杭州,深圳,青岛等)中,可以将Object从一个Bucket复制到另外一个Bucket。您可以通过OSSClient.copyObject。
- CopyObjectResult copyObject(String sourceBucketName, String sourceKey, String destinationBucketName, String destinationKey)
- CopyObjectResult copyObject(CopyObjectRequest copyObjectRequest)
第一个方法指定源Bucket/Key和目标源Bucket/Key,目标object的内容和元数据与源object相同,称为简单拷贝。第二个方法允许指定目标文件的原因数据、允许指定拷贝的限制条件。如果拷贝操作的源Object地址和目标Object地址相同,则直接替换源Object的meta信息。
CopyObjectRequest可设置参数如下:
CopyObjectRequest的参数如下:
注意:
- 用户需要有源Object的操作权限,否则会无法完成操作。
- 该操作不支持跨Region拷贝数据。比如:不支持将杭州Bucket里的Object拷贝到青岛。
- 该操作支持的最大Object大小为1GB。