阿里云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文件上传工具类相关推荐

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

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

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

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

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

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

  4. 阿里云视频点播-->>>阿里云媒资上传工具类及配置

    阿里云媒资上传 官网: 介绍 1.阿里云视频点播 2.视频服务流程 三,测试类中编写代码 四,媒资管理管理配置-存储管理 五,开始编写我们的JAVA代码 1.application.yml 2.配置类 ...

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

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

  6. Java学习踩坑:阿里云OSS文件上传前端通过路径获取报403错误

    错误还原:我在做OSS文件上传头像时,发现头像的图片文件可以上传成功,也可以返回文件的路径.但是前端在拿着后端返回的文件图片路径去访问这个图片时,Response中的错误码为403.找了一下网上的资料 ...

  7. 阿里云OSS文件上传下载工具类

    引入依赖 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss ...

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

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

  9. 阿里云OSS文件上传存储和删除,获取文件外网访问路径

    因为项目中需要存储的数据主要是图片数据,所以使用阿里云提供的OSS存储,性价比高,也很简便.(本文一步一步操作指导最后成功都有截图) 前提工作: 已经在oss创建了bucket,就是一个项目的意思.并 ...

最新文章

  1. Android studio Day02-1
  2. 实时语义分割ENet
  3. 比较好的php源码,目前市面上能拿到的最好的PHP跑F分源码下载
  4. oracle怎么优化动态sql语句,oracle动态sql语句处理
  5. BMP文件结构的探索 【转】
  6. php jwt token 解析,JSON Web Token(JWT)入坑详解
  7. 并发包 concurrent(一) Atomic
  8. 直接选择排序算法汇总
  9. OpenGL笔记5 shader 调试信息获取 Debug
  10. 嵌入式linux开发 周立功,嵌入式linux开发教程 周立功
  11. 没基础,也可一文看懂 python 中的 csv 模块
  12. 3Dmark2006真让人郁闷!
  13. 猫哥教你写爬虫 014--pk小游戏
  14. Android N开发 你需要知道的一切
  15. 【Java】奇偶数判断
  16. Windows10安装Linux子系统Ubuntu 20.04LTS,轻松使用生信软件,效率秒杀虚拟机(转载)
  17. JavaScript基础入门 封装DOM 连缀
  18. JAVA web中的一点东西
  19. 织梦banner图后台添加
  20. cocos creator动态加载DragonBones

热门文章

  1. GB2312 汉字拼音对照表(6727字)
  2. 教你做IOS推送 包会!
  3. 零基础转行从事云计算运维工作,不得不掌握的几项技能
  4. jumpserver详解(一)——jumpserver简介
  5. MySQL采用哪种数据模型_数据库的三种数据模型分别是什么
  6. 如何在不安装字体的情况下使用字体(字体解析库)
  7. PowerShell DER(CER) 证书转安卓用 PEM 证书
  8. Logstash【从无到有从有到无】【简介】【L2】Logstash入门
  9. STC89C52 8*8点阵 ----自学笔记
  10. UI设计中分享功能总结