当前位置: 首页 > news >正文

Java调用Oss JDk删除指定目录下的所有文件

1,引入依赖

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.16.1</version>
</dependency>

2,方法

/**
	 * 删除指定前缀或目录下的多个文件
	 *
	 * @param prefix 删除目录
	 */
	public void deletePathFileList(String prefix) {
		OSS ossClient = null;
		try {
            //封装创建Oss实例
			CredentialsProvider credentialsProvider = new DefaultCredentialProvider(access_key, secret_key);
			ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
			clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
			ossClient = OSSClientBuilder.create().endpoint(endpoint).credentialsProvider(credentialsProvider).clientConfiguration(clientBuilderConfiguration).region(region).build();
            // 列举所有包含指定前缀的文件并删除。
			String nextMarker = null;
			ObjectListing objectListing;
			do {
				ListObjectsRequest listObjectsRequest = new ListObjectsRequest(bucket).withPrefix(prefix).withMarker(nextMarker);

				objectListing = ossClient.listObjects(listObjectsRequest);
				if (!objectListing.getObjectSummaries().isEmpty()) {
					List<String> keys = new ArrayList<>();
					for (OSSObjectSummary s : objectListing.getObjectSummaries()) {
						keys.add(s.getKey());
					}
					DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest(bucket).withKeys(keys).withEncodingType("url");
					DeleteObjectsResult deleteObjectsResult = ossClient.deleteObjects(deleteObjectsRequest);
					List<String> deletedObjects = deleteObjectsResult.getDeletedObjects();
					for (String obj : deletedObjects) {
						String deleteObj = URLDecoder.decode(obj, "UTF-8");
						System.out.println(deleteObj);
					}
				}
				nextMarker = objectListing.getNextMarker();
			} while (objectListing.isTruncated());
		} catch (Exception e) {
			log.error("阿里云删除指定前缀或目录下的多个文件异常:{}", e.getMessage());
		} finally {
			if (ossClient != null) {
				ossClient.shutdown();
			}
		}
	}

 

相关文章:

  • 【最大异或和——可持久化Trie】
  • 设计模式-桥接模式
  • C语言文件管理详解(上)
  • 下拉菜单+DoTween插件
  • 基于ssm图文印务交互系统小程序(源码+lw+部署文档+讲解),源码可白嫖!
  • Docker 使用指南
  • Django Rest Framework 创建纯净版Django项目部署DRF
  • 每日一题——二叉树的三种中序遍历方法
  • C语言基础要素(017):退出条件循环:do-while
  • Qt 实现波浪填充的圆形进度显示
  • 谈谈 undefined 和 null
  • SAP(第四周)
  • NebulaGraph3.3.0部署与配置
  • 基于运动电商虚拟数据的商业洞察与分析
  • 【Mac】安装 Parallels Desktop、Windows、Rocky Linux
  • Windows 图形显示驱动开发-WDDM 3.0功能- 硬件翻转队列(一)
  • 【Json—RPC框架】:宏定义不受命名空间限制,续行符的错误使用造成的bug
  • 计算机组成原理试题六
  • 正则表达式:贪婪匹配与非贪婪匹配
  • [贪心算法] 摆动序列
  • 吴清稳市场稳预期发布会十要点:谈平准基金、股市稳定、公募改革和巴菲特
  • 上海市政府党组会议传达学习习近平总书记重要讲话精神,部署抓好学习贯彻落实
  • 中标多家学校采购项目的App查成绩需付费?涉事公司回应
  • 韩国总统选举民调:共同民主党前党首李在明支持率超46%
  • 莫斯科一机场实施临时限制措施
  • 跳水世界杯女子单人10米台决赛,陈芋汐、全红婵包揽金银牌