maven依赖

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

工具类

package com.demo.util;import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.util.Calendar;import cn.hutool.core.util.ObjectUtil;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.CannedAccessControlList;
import com.aliyun.oss.model.CreateBucketRequest;
import com.aliyun.oss.model.GetObjectRequest;
import com.aliyun.oss.model.OSSObject;
import com.aliyun.oss.model.ObjectMetadata;
import com.aliyun.oss.model.PutObjectRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.multipart.MultipartFile;/*** @author matao* @version OssUtil.java, v 0.1 2022年10月27日 16:51 matao*/
//@Component
@Slf4j
public class OssUtil {@Value("${metadata.aliyun.endPoint}")private String endpoint;@Value("${metadata.aliyun.accessKey.default.id}")private String accessId;@Value("${metadata.aliyun.accessKey.default.secret}")private String accessSecret;@Value("${metadata.aliyun.oss.nameSpace}")private String ossNameSpace;private OSS client;/*** 上传文件到oss** @param file     文件* @param filePath 文档存放路径* @return 文件访问地址*/public String uploadFile(MultipartFile file, String filePath) {try {buildOssClient();InputStream inputStream = file.getInputStream();// 创建PutObjectRequest对象PutObjectRequest request = new PutObjectRequest(ossNameSpace, filePath, inputStream);// 文件上传时设置参数ObjectMetadata metadata = new ObjectMetadata();metadata.setContentLength(inputStream.available());metadata.setCacheControl("no-cache");metadata.setHeader("Pragma", "no-cache");request.setMetadata(metadata);client.putObject(request);// 设置URL过期时间为10年Calendar calendar = Calendar.getInstance();calendar.add(Calendar.YEAR, 10);URL url = client.generatePresignedUrl(ossNameSpace, filePath, calendar.getTime());return url.toString();} catch (Exception e) {return null;} finally {closeOssClient();}}/*** 下载文件流** @param filePath oss文件路径* @return 文件流*/public InputStream downloadFile(String filePath) {InputStream inputStream;try {buildOssClient();// 判断文件是否存在if (!client.doesObjectExist(ossNameSpace, filePath)) {return null;}OSSObject object = client.getObject(ossNameSpace, filePath);if (ObjectUtil.isNull(object)) {return null;}inputStream = object.getObjectContent();} catch (Exception e) {return null;}return inputStream;}/*** 下载文件到本地** @param remoteFilePath oss文件路径* @param localFilePath  要存放的文件本地路径* @param bucketName     文件目录*/public void downloadFile(String remoteFilePath, String localFilePath, String bucketName) {try {buildOssClient();// 判断文件是否存在if (!client.doesObjectExist(bucketName, remoteFilePath)) {return;}// 读取文件到本地GetObjectRequest request = new GetObjectRequest(bucketName, remoteFilePath);client.getObject(request, new File(localFilePath));} catch (Exception ignored) {} finally {closeOssClient();}}/*** 创建bucket** @param bucketName 文件目录*/private void createBucket(String bucketName) {if (!client.doesBucketExist(bucketName)) {CreateBucketRequest bucketRequest = new CreateBucketRequest(bucketName);bucketRequest.setCannedACL(CannedAccessControlList.PublicRead);this.client.createBucket(bucketRequest);}}/*** 构建client*/private void buildOssClient() {this.client = new OSSClientBuilder().build(endpoint, accessId, accessSecret);}/*** 关闭client*/public void closeOssClient() {if (!ObjectUtil.isNull(client)) {this.client.shutdown();}}
}

阿里云oss文件处理工具类相关推荐

  1. 阿里云oss文件上传工具类

    阿里云oss文件上传工具类 阿里云oss 阿里云oss 导入文件阿里云oss的maven依赖 <!-- 阿里云oss依赖 --><dependency><groupId& ...

  2. Java中阿里云OSS文件上传工具类

    阿里云OSS文件上传下载工具类 前言: 本质上就是获取配置文件信息,然后注入bean,调用sdk中提供的增删改方法: 为了避免同名文件会替换,用了hutool中唯一id生成+文件名做拼接 导入依赖:→ ...

  3. SpringBoot整合阿里云OSS文件上传、下载、查看、删除

    SpringBoot整合阿里云OSS文件上传.下载.查看.删除 该项目源码地址:https://github.com/ggb2312/springboot-integration-examples ( ...

  4. 阿里云OSS文件上传下载,拿来即用

    什么是OSS 我们可以理解为就是一个资源服务器,在这之前我也尝试过Nginx当静态资源服务器,但效果比较一般,为什么选择阿里云OSS,只是因为最近刚好公司用到了,所以就接入了,还有其他的比如七牛云,腾 ...

  5. 阿里云视频点播服务Vod工具类——实现视频上传、删除、播放

    阿里云视频点播服务Vod工具类--实现视频上传.删除.播放 阿里云视频点播服务Vod工具类 maven依赖 工具类实现 工具类的测试 获取视频 1. 获取单个视频的播放地址和ID: 2. 获取所有视频 ...

  6. Linux环境Shell脚本上传下载阿里云OSS文件

    为什么80%的码农都做不了架构师?>>>    Linux环境Shell脚本上传下载阿里云OSS文件 背景 工作中由于我们项目生成的日志文件比较重要,而本地磁盘空间有限存储不了多久, ...

  7. 阿里云OSS文件批量打包下载

    阿里云OSS文件批量打包下载 public void downloadReport(List<String> fileNames,HttpServletResponse response) ...

  8. 解决阿里云oss文件上传部分MP4格式视频文件上传导致上传崩溃问题

    解决阿里云oss文件上传部分MP4格式视频文件上传导致上传崩溃问题 问题描述 java程序,使用阿里云oss文件上传服务,在测试时偶然发现,我用苹果手机开启高清进行摄像,将原图通过qq传到电脑上,在电 ...

  9. python实现阿里云OSS文件上传下载

    一 前言 最近使用到阿里云的产品OSS,用于临时存储线上抽取的数据,然后起本地化的流程去OSS拉回本地,进行自动化数据验证.OSS提供了web方式的管理控制台,命令行管理工具,提供了主流的SDK支持, ...

最新文章

  1. UIAlertView
  2. 由小游戏跳一跳想到的
  3. 关于 equals 和 hashCode,看这一篇真的够了!
  4. python文件路径操作及pathlib库
  5. 【线段树 集合hash】bzoj4373: 算术天才⑨与等差数列
  6. 强化学习应用于组合优化问题_如何将强化学习应用于现实生活中的计划问题
  7. spring AOP 之一:spring AOP功能介绍
  8. 2017/05/04 java 基础 随笔
  9. 2011年7月21日 星期四 new
  10. legend---六、php脚本变量的生命周期是怎样的
  11. SPSS多重响应分析(多选题)【SPSS 016期】
  12. 纯CSS实现的炫酷HOVER效果
  13. Netty权威指南电子版(不要积分点个赞就好)
  14. Java工程师的职业规划,上个月成功拿到阿里P7offer
  15. 数据结构课设:基于字符串模式匹配算法的病毒感染检测问题
  16. DHTMLX JS Gantt Library 7.1.13
  17. 什么是SCRM 客户scrm管理系统 - whale 帷幄
  18. 解决WIN10播放AVI等格式视频黑屏只有声音的问题
  19. spark agg算子使用
  20. 代码生成器-mybatis-plus-generator

热门文章

  1. k8s 指定节点调度标签
  2. Fluent 熔化固化模型学习(melting and solidification)
  3. 红通告小程序_小程序:红包通知,让你还当作不知道!!
  4. 一对一直播源码开发——java服务器端直播间的实现
  5. 关键信息基础设施(RVA)安全保护要点分析
  6. so调用报错 java.lang.UnsatisfiedLinkError: No implementation found for ...
  7. HDU 2005 第几天?
  8. 《中国历代政治得失》-钱穆
  9. Lex/Yacc 初识Lex
  10. 【Bzoj1875】HH去散步