阿里云OSS云存储删除(单个,指定的多个文件)删除文件

配置 pom.xml

     <!--阿里云OSS 依赖--><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.13.2</version></dependency><!-- 日期工具栏依赖 --><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.10.13</version></dependency><!--Java 9及以上的版本,则需要添加jaxb相关依赖--><dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.1</version></dependency><dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1.1</version></dependency><dependency><groupId>org.glassfish.jaxb</groupId><artifactId>jaxb-runtime</artifactId><version>2.3.3</version></dependency>

配置application.properties或配置application.yml文件

#阿里云 OSS
#不同的服务器,地址不同
aliyun.oss.file.endpoint=your endpoint
aliyun.oss.file.keyid=your accessKeyId
aliyun.oss.file.keysecret=your accessKeySecret
#bucket可以在控制台创建,也可以使用java代码创建
aliyun.oss.file.bucketname=education-teacher

实现文件删除

创建常量读取工具类:ConstantPropertiesUtil.java
使用@Value读取application.properties里的配置内容
用spring的 InitializingBean 的 afterPropertiesSet 来初始化配置信息,这个方法将在所有的属性被初始化后调用。

package com.xiaogui.oss.utils;import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;/*** oss存储配置类* 当项目已启动,spring接口,spring加载之后,执行接口一个方法*/
@Component
public class ConstantPropertiesUtils implements InitializingBean {//读取配置文件内容@Value("${aliyun.oss.file.endpoint}")private String endpoint;@Value("${aliyun.oss.file.keyid}")private String keyId;@Value("${aliyun.oss.file.keysecret}")private String keySecret;@Value("${aliyun.oss.file.bucketname}")private String bucketName;//定义公开静态常量public static String END_POINT;public static String ACCESS_KEY_ID;public static String ACCESS_KEY_SECRET;public static String BUCKET_NAME;@Overridepublic void afterPropertiesSet() throws Exception {END_POINT = endpoint;ACCESS_KEY_ID = keyId;ACCESS_KEY_SECRET = keySecret;BUCKET_NAME = bucketName;}
}

编写删除文件接口controller OssController类

package com.xiaogui.oss.controller;import com.xiaogui.oss.service.OssService;
import com.xiaogui.security.common.results.ResultEnum;
import com.xiaogui.security.common.results.ResultResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;import java.util.ArrayList;
import java.util.List;@RestController
@RequestMapping("fileOss")
//@CrossOrigin // 跨域
@Api(value = "文件删除oss", tags = "文件删除oss")
public class OssController {@Autowiredprivate OssService ossService;/*** 删除文件远程方法*/@PostMapping(value = "deleteFile")@ApiOperation(value = "单个删除", notes = "单个删除")public ResultResponse deleteFile(String fileName) {//获取删除文件  fileName/*** 填写文件名。文件名包含路径,不包含Bucket名称。* 例如2021/09/14/52c6a3114e634979a2934f1ea12deaadfile.png。*/boolean flag =  ossService.deleteFile(fileName);if (flag){return ResultResponse.of(true,101,"删除成功");}  else {return ResultResponse.of(false,102,"删除失败");}}/*** 删除指定的多个文件*/@PostMapping(value = "deleteFileAll")@ApiOperation(value = "删除指定的多个文件", notes = "删除指定的多个文件")public ResultResponse deleteFileAll() {List<String> keys = new ArrayList<>();keys.add("course/1442295506745.jpg");keys.add("2021/12/29/33840e4244de4f989e60710b8bd09d9c1234.jpeg");keys.add("exampleobjectb.txt");List<String> result = ossService.deleteFileAll(keys);return ResultResponse.of(result, ResultEnum.SUCCESS,true);}

编写删除文件接口具体实现类 OssService类

package com.xiaogui.oss.service;import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.DeleteObjectsRequest;
import com.aliyun.oss.model.DeleteObjectsResult;
import com.aliyun.oss.model.VoidResult;
import com.xiaogui.oss.utils.ConstantPropertiesUtils;
import org.joda.time.DateTime;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;import java.io.InputStream;
import java.util.List;
import java.util.UUID;/*** 文件删除oss*/
@Service
public class OssService {/*** 删除单个文件*/public boolean deleteFile(String fileName) {/*** 工具类获取值*/// yourEndpoint填写Bucket所在地域对应的Endpoint。// 以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。String endpoint = ConstantPropertiesUtils.END_POINT;// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;// 填写Bucket名称,例如examplebucketString bucketName = ConstantPropertiesUtils.BUCKET_NAME;/*** 填写文件名。文件名包含路径,不包含Bucket名称。* 例如2021/09/14/52c6a3114e634979a2934f1ea12deaadfile.png。*/String objectName = fileName;boolean flag = false;try {// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);// 删除文件。VoidResult voidResult = ossClient.deleteObject(bucketName, objectName);if (voidResult.getResponse().getStatusCode() == 204){flag = true;}// 关闭OSSClient。ossClient.shutdown();} catch (OSSException e){e.printStackTrace();}return flag;}/*** 删除指定的多个文件*/public List<String> deleteFileAll(List<String> keys) {/*** 工具类获取值*/// yourEndpoint填写Bucket所在地域对应的Endpoint。// 以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。String endpoint = ConstantPropertiesUtils.END_POINT;// 阿里云账号AccessKey拥有所有API的访问权限,// 风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;// 填写Bucket名称,例如examplebucketString bucketName = ConstantPropertiesUtils.BUCKET_NAME;// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);// 删除请求DeleteObjectsRequest deleteRequest = new DeleteObjectsRequest(bucketName);// 赋值需要删除的文件deleteRequest.setKeys(keys);//deleteRequest.setEncodingType(URL_ENCODING);// 调用删除DeleteObjectsResult deleteObjectsResult = ossClient.deleteObjects(deleteRequest);// 获取删除的文件List<String> deletedObjects = deleteObjectsResult.getDeletedObjects();// 关闭OSSClient。ossClient.shutdown();return deletedObjects;}

阿里云OSS云存储删除(单个,指定的多个文件)删除文件相关推荐

  1. 如何删除阿里云OSS云存储bucket

    删除阿里云OSS云存储bucket的步骤 1.登录阿里云,进入到OSS存储管理页面, 2.在页面左侧菜单栏里点击bucket名称进入你已经创建的bucket, 3.然后点击左侧菜单栏进入基础设置, 4 ...

  2. 阿里云OSS(对象存储服务)简介

    最近公司想要使用阿里云OSS来存储精准客流图片,所以提前熟悉一下,做一个记录 注:阿里云官方文档已经很详细的阐述了OSS.以及开发流程,本文大多都是参考官方文档 OSS官方介绍地址:https://h ...

  3. 阿里云OSS云存储平台

    阿里云OSS云存储平台实战--图片上传/下载/删除 一.OSS实战要求 使用SpringBoot和OSS实现图片的上传.下载和删除功能, 具体要求如下: 可以使用postman 发送上传请求 /pic ...

  4. Java使用阿里云OSS对象存储上传图片

    示例说明   该案例是OSS Java SDK的示例程序,您可以修改endpoint.accessKeyId.accessKeySecret.bucketName后直接运行. 本示例中的并不包括OSS ...

  5. 6、阿里云OSS对象存储手把手学习及企业使用方案

    文章目录 1.什么是分布式文件系统 2.图片存储解决方案 3.阿里云OSS对象存储 3.1.开通oss访问 3.2.购买服务 3.3.基本概念 3.4.创建一个bucket 3.5.创建AccessK ...

  6. 阿里云OSS——对象存储服务(工具)

    阿里云OSS--对象存储服务(工具) 一.依赖 二.yaml配置 三.OSS工具类 四.demo演示 4.1 SpringBoot启动类 4.2 Controller接口 4.3 swagger测试 ...

  7. 阿里云 OSS 对象存储简单使用【随笔】

    Aliyun OSS 对象存储的使用 官方文档:https://help.aliyun.com/document_detail/32008.html?spm=a2c4g.11186623.6.916. ...

  8. java oss 批量传输_阿里云OSS对象存储,服务端签名后直传阿里云OSS

    继续上一章文章,这次要操作的是,浏览器请求服务要到签名后直传给OSS对象存储. 1.写好服务端的方法,传给前台相应的密钥 @Resource OSSClient ossClient; @Value(& ...

  9. 【阿里云OSS对象存储搭配CDN加速使用】

    阿里云OSS对象存储搭配CDN加速使用 什么是CDN? 为什么选择阿里云CDN? 按流量计费说明 CDN按流量计费费如下: OSS外网流出流量标准收费如下: 步骤一:准备工作 步骤二.开通CDN 涉及 ...

最新文章

  1. python数据可视化利用_利用pyecharts实现python数据可视化
  2. cppunit linux,Linux中使用CppUnit工具
  3. ARM linux的启动部分源代码简略分析
  4. 【机器学习入门笔记8:TensorFlow运算实质】20190216
  5. 【Tools】VNC Server 6.7安装详解
  6. Unity的IOS接入新浪微博
  7. mysql更新多条数据_mysql 一次更新多行(多条记录)
  8. Trip to Canvas(1)
  9. HCIE-Security Day11:双机热备,从VRRP到VGMP
  10. 如何解决css样式表在不同浏览器中显示效果不同的问题
  11. 学习数据库Mysql/Oracle/SQL从入门到进阶书籍pdf版吐血整理推荐附网盘链接(珍藏版)
  12. 一次性补助20万,博士买房比市价低1.5万/平!26城硕博引进政策哪家强?
  13. 基于FBX SDK的FBX模型解析与加载
  14. 多路耦合器(有源分离器)在无线通讯中的应用
  15. Win11下蓝牙鼠标停止4秒后启动卡顿
  16. 常用C++开发环境介绍
  17. HEVC-帧内预测2: initAdiPattern 函数
  18. 细说Java性能测试第三课 性能测试详解2
  19. 为什么在AndroidManifest.xml中Activity的theme用不了Theme.Light.NoTitleBar?
  20. 博弈论——重复博弈和制度建设

热门文章

  1. 前言:流程的永恒之道
  2. 网络RTK——区域改正参数法(FKP)
  3. 运算放大器节点电压方程_干货分享 | 关于放大器配置,你不得不知道的22个常用设计方程...
  4. 2022年卫星导航系统模拟器市场前景分析及研究报告
  5. [附源码]Python计算机毕业设计超市销售管理系统
  6. 阿里iDST视觉计算负责人华先胜:算法和数据并非AI公司成功的全部
  7. 《JAVA》课程教学大纲
  8. 搭建hexo主题Butterfly部署github+个人服务器
  9. 今年的 COSCon 中国开源年会,让我们聊点不一样的~
  10. python 获取excel文本框_如何基于python操作excel并获取内容