阿里云oss文件上传工具类
阿里云oss文件上传工具类
- 阿里云oss
阿里云oss
导入文件阿里云oss的maven依赖
<!-- 阿里云oss依赖 --><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version></dependency>
创建uploadFileAvatar类
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;/*** @author juntower* @create 2022-04-24 23:40*/
@Service
public class OssService {//上传头像到oss@Overridepublic String uploadFileAvatar(MultipartFile file) {//工具类获取值:分别是:地域节点、id、秘钥、项目名称String endpoint = ConstantPropertiesUtil.END_POINT;String accessKeyId = ConstantPropertiesUtil.ACCESS_KEY_ID;String accessKeySecret = ConstantPropertiesUtil.ACCESS_KEY_SECRET;String bucketName = ConstantPropertiesUtil.BUCKET_NAME;try {// 创建OSS实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);//获取上传文件输入流InputStream inputStream = file.getInputStream();//获取文件名称String fileName = file.getOriginalFilename();//1、在文件名称里面添加随机唯一值(因为如果上传文件名称相同的话,后面的问价会将前面的文件给覆盖了)String uuid = UUID.randomUUID().toString().replaceAll("-","");//因为生成后的值有横岗,我们就把它去除,不替换也可以,也没有错fileName = uuid + fileName;//2、把文件安装日期进行分类: 2022/10/11/1.jpg//获取当前日期String datePath = new SimpleDateFormat("yyyy-MM-dd").format(new Date());//在依赖中引入了该工具类//拼接fileName = datePath + "/" + fileName;//调用oss方法实现上传//参数一:Bucket名称 参数二:上传到oss文件路径和文件名称 比如 /aa/bb/1.jpg 或者直接使用文件名称 参数三:上传文件的流ossClient.putObject(bucketName,fileName,inputStream);//关闭OSSClientossClient.shutdown();//把上传之后的文件路径返回//需要把上传到阿里云路径返回 https://edu-guli-eric.oss-cn-beijing.aliyuncs.com/1.jpgString url = " https://"+bucketName+"."+endpoint+"/"+fileName;return url;} catch (IOException e) {e.printStackTrace();return null;}}
}
创建 ConstantPropertiesUtil类
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;/*** 获取阿里云信息的工具类* 该类的执行流程:* 类加载后,先加载四个变量,再分别赋值* 接着执行重写的方法** @author juntower*/
@Component
public class ConstantPropertiesUtil implements InitializingBean { //当项目一启动,就会执行该接口的重写方法@Value("${alibaba.cloud.oss.endpoint}")private String endpoint;@Value("${alibaba.cloud.oss.bucket}")private String bucketName;@Value("${alibaba.cloud.access-key}")private String keyId;@Value("${alibaba.cloud.secret-key}")private String keySecret;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;}
}
在application.yaml添加
alibaba:cloud:access-key: 自己阿里云AccessKey IDsecret-key: 自己阿里云AccessKey Secretoss:endpoint: Endpoint(地域节点)bucket: 空间名称bucket
controller代码
@Autowiredprivate OssService ossService;//上传文件到阿里云OSS@PostMapping("/upload")public String uploadOssFile(MultipartFile file){//获取上传的文件 通过 MultipartFileString url = ossService.uploadFileAvatar(file);//返回上传图片的路径return url;}
阿里云oss文件上传工具类相关推荐
- Java中阿里云OSS文件上传工具类
阿里云OSS文件上传下载工具类 前言: 本质上就是获取配置文件信息,然后注入bean,调用sdk中提供的增删改方法: 为了避免同名文件会替换,用了hutool中唯一id生成+文件名做拼接 导入依赖:→ ...
- SpringBoot整合阿里云OSS文件上传、下载、查看、删除
SpringBoot整合阿里云OSS文件上传.下载.查看.删除 该项目源码地址:https://github.com/ggb2312/springboot-integration-examples ( ...
- 阿里云OSS文件上传下载,拿来即用
什么是OSS 我们可以理解为就是一个资源服务器,在这之前我也尝试过Nginx当静态资源服务器,但效果比较一般,为什么选择阿里云OSS,只是因为最近刚好公司用到了,所以就接入了,还有其他的比如七牛云,腾 ...
- 阿里云视频点播-->>>阿里云媒资上传工具类及配置
阿里云媒资上传 官网: 介绍 1.阿里云视频点播 2.视频服务流程 三,测试类中编写代码 四,媒资管理管理配置-存储管理 五,开始编写我们的JAVA代码 1.application.yml 2.配置类 ...
- 解决阿里云oss文件上传部分MP4格式视频文件上传导致上传崩溃问题
解决阿里云oss文件上传部分MP4格式视频文件上传导致上传崩溃问题 问题描述 java程序,使用阿里云oss文件上传服务,在测试时偶然发现,我用苹果手机开启高清进行摄像,将原图通过qq传到电脑上,在电 ...
- Java学习踩坑:阿里云OSS文件上传前端通过路径获取报403错误
错误还原:我在做OSS文件上传头像时,发现头像的图片文件可以上传成功,也可以返回文件的路径.但是前端在拿着后端返回的文件图片路径去访问这个图片时,Response中的错误码为403.找了一下网上的资料 ...
- 阿里云OSS文件上传下载工具类
引入依赖 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss ...
- python实现阿里云OSS文件上传下载
一 前言 最近使用到阿里云的产品OSS,用于临时存储线上抽取的数据,然后起本地化的流程去OSS拉回本地,进行自动化数据验证.OSS提供了web方式的管理控制台,命令行管理工具,提供了主流的SDK支持, ...
- 阿里云OSS文件上传存储和删除,获取文件外网访问路径
因为项目中需要存储的数据主要是图片数据,所以使用阿里云提供的OSS存储,性价比高,也很简便.(本文一步一步操作指导最后成功都有截图) 前提工作: 已经在oss创建了bucket,就是一个项目的意思.并 ...
最新文章
- Android studio Day02-1
- 实时语义分割ENet
- 比较好的php源码,目前市面上能拿到的最好的PHP跑F分源码下载
- oracle怎么优化动态sql语句,oracle动态sql语句处理
- BMP文件结构的探索 【转】
- php jwt token 解析,JSON Web Token(JWT)入坑详解
- 并发包 concurrent(一) Atomic
- 直接选择排序算法汇总
- OpenGL笔记5 shader 调试信息获取 Debug
- 嵌入式linux开发 周立功,嵌入式linux开发教程 周立功
- 没基础,也可一文看懂 python 中的 csv 模块
- 3Dmark2006真让人郁闷!
- 猫哥教你写爬虫 014--pk小游戏
- Android N开发 你需要知道的一切
- 【Java】奇偶数判断
- Windows10安装Linux子系统Ubuntu 20.04LTS,轻松使用生信软件,效率秒杀虚拟机(转载)
- JavaScript基础入门 封装DOM 连缀
- JAVA web中的一点东西
- 织梦banner图后台添加
- cocos creator动态加载DragonBones