清空 COS Bucket 内文件 (Java)

COS 的web控制台和登录工具里面没有提供清空bucket的功能,批量删除每次删除上限1000条,且删除的操作相对麻烦。

刚好有删除bucket的需求,但是需要先清空bucket下的文件。所以写了一个简单的清空小工具,只是小工具,没有做太多校验。


import java.util.ArrayList;

import java.util.List;

import com.qcloud.cos.COSClient;

import com.qcloud.cos.ClientConfig;

import com.qcloud.cos.auth.BasicCOSCredentials;

import com.qcloud.cos.auth.COSCredentials;

import com.qcloud.cos.model.COSObjectSummary;

import com.qcloud.cos.model.DeleteObjectsRequest;

import com.qcloud.cos.model.DeleteObjectsRequest.KeyVersion;

import com.qcloud.cos.model.ObjectListing;

import com.qcloud.cos.region.Region;

public class ClearCOS {

public static void main(String[] args) {

String secretId = "你的ID";

String secretKey = "你的KEY";

// 1 初始化用户身份信息(secretId, secretKey)

COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);

// 2 设置bucket的区域, COS地域的简称请参照

// https://cloud.tencent.com/document/product/436/6224

ClientConfig clientConfig = new ClientConfig(new Region("ap-shanghai"));

// 3 生成cos客户端

COSClient cosclient = new COSClient(cred, clientConfig);

// bucket的命名规则为{name}-{appid} ,此处填写的存储桶名称必须为此格式

String bucketName = "你的bucket名称-你的appid";

// 循环进行删除,如果删完了就会停止

while(true) {

ObjectListing list = cosclient.listObjects(bucketName);

List<COSObjectSummary> lists = list.getObjectSummaries();

if(lists.isEmpty()) {

break;

}

List<KeyVersion> keys = new ArrayList<>();

lists.forEach((e) -> { // 此处没有做1000条记录校验,因为listObjects没有返回过1000条的情况,如果你有遇到,请做一下简单判断.

String key = e.getKey();

KeyVersion kv = new KeyVersion(key);

keys.add(kv);

});

DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest(bucketName);

deleteObjectsRequest.setKeys(keys );

cosclient.deleteObjects(deleteObjectsRequest);

}

}

}


原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

使用记

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python

Flask快速入门,知识整理

一、Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来)   Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服...

3239
来自专栏听雨堂

Log4Net使用心得

winform程序使用Log4net   1.引用dll   2.添加log4net.config,设置“始终复制”   4.assemblyinfo.cs中添...

18710
来自专栏IT技术篇

gdb 基础命令

GDB是GNU发布的一个调试工具。gdb 是基于UNIX/Linux 命令行的,功能强大,可与windows平台的visual studio 媲美。

37822
来自专栏沃趣科技

ASM 翻译系列第三十四弹:ASM磁盘组重要属性介绍

原作者:Bane Radulovic 译者: 邱大龙 审核: 魏兴华 DBGeeK社区联合出品 原文链接:http://asmsupportguy....

3226
来自专栏晓晨的专栏

Autofac高级用法之动态代理

1273
来自专栏北京马哥教育

linux 内存耗尽的分析

在测试NAS性能,用fstest长时间写,分析性能变差的原因,发现server主机内存使用率很高。 1.首先查看内存 # top -M top - 14:...

3836
来自专栏Seebug漏洞平台

Spring MVC 目录穿越漏洞(CVE-2018-1271)分析

2018年04月05日,Pivotal公布了Spring MVC存在一个目录穿越漏洞(CVE-2018-1271)。Spring Framework版本5.0到...

1142
来自专栏移动开发的那些事儿

Android Sqlite并发问题

如上异常堆栈中的错误信息error code 5: database is locked,经过查找发现code为5代表sqlite中的SQLITE_BUSY异常...

754
来自专栏岑玉海

hbase源码系列(七)Snapshot的过程

  在看这一章之前,建议大家先去看一下snapshot的使用。可能有人会有疑问为什么要做Snapshot,hdfs不是自带了3个备份吗,这是个很大的误区,要知道...

2916
来自专栏玩转JavaEE

Spring Cloud自定义Hystrix请求命令

在上篇文章中,我们介绍了断路器Hystrix的一个简单使用,主要是通过注解来实现断路器的功能的,不过对于Hystrix的使用,除了注解,我们也可以使用继承类的方...

3673

扫码关注云+社区