简介

OSS对象存储
  阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。OSS可用于图片、音视频、日志等海量文件的存储。各种终端设备、Web网站程序、移动应用可以直接向OSS写入或读取数据。

阿里云后台操作步骤

1.开通OSS服务

2.进入控制台

3.创建 Bucket

4.新建文件夹(存放文件)

5.创建完成后,在右上角头像栏找到AccessKey管理

6.点击 创建AccessKey,身份验证后,即可获取到KeyId和KeySercret

实现

1.引入oos依赖

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

2.yml文件以及oss配置信息

application.yml

server:port: 8081mybatis:type-aliases-package: com.wjj.springbootoos.pojoconfiguration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplmapper-locations: classpath:/mapper/*.xmlspring: #springboot的配置datasource: #定义数据源#127.0.0.1为本机测试的ip,3306是mysql的端口号。serverTimezone是定义时区,照抄就好,mysql高版本需要定义这些东西#useSSL也是某些高版本mysql需要问有没有用SSL连接url: jdbc:mysql://localhost:3306/oos?serverTimezone=UTCusername: root  #数据库用户名,root为管理员password: root #该数据库用户的密码mysql.session

application-aliyun-oos.properties

aliyun.endPoint=oss-cn-hangzhou.aliyuncs.comaliyun.urlPrefix=junkai1.oss-cn-hangzhou.aliyuncs.comaliyun.accessKeyId=LTAI5tPP4FLVrM92oSZxtWV6aliyun.accessKeuSecrect=cxLRwCyr0z2QYKYvaDDPMLMDEYMLLPaliyun.bucketName=junkai1aliyun.fileHost=ketaispring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=200MB

这里需要填入直接的,可通过上面的AccessKey管理进入找到相对应的填入即可

config

AliyunOssConfig

封装对应属性

service接口

实现类

上传

@Autowiredprivate OSS client;@Autowiredprivate fileMapper mapper;@Autowiredprivate AliyunOssConfig aliyunOssConfig;//共有属性代码 允许上传图片的格式private static final String[] IMAGE_TYPE =new String[]{".bmp",".jpg",".jpeg",".gif",".png"};@Overridepublic String upload(MultipartFile multipartFile) {//获取基本信息String endpoint=aliyunOssConfig.getEndPoint();String bucketName=aliyunOssConfig.getBucketName();String accesKeyId=aliyunOssConfig.getAccessKeyId();String accessKeuSecret=aliyunOssConfig.getAccessKeuSecrect();String fileHost=aliyunOssConfig.getFileHost();//校验格式boolean isLegal=false;for (String type:IMAGE_TYPE){if (StringUtils.endsWithIgnoreCase(multipartFile.getOriginalFilename(),type)){isLegal=true;break;}}if (isLegal==false){return StatusCode.ERROR.getMsg();}//1.获取文件名称String orName=multipartFile.getOriginalFilename();//2.获取文件的类型String fileType=orName.substring(orName.lastIndexOf("."));//3.新名称String newFileName= UUID.randomUUID().toString()+fileType;System.out.println(newFileName);//4.构建文件上传路径String filePath=new SimpleDateFormat("yyyy/MM/dd").format(new Date());//5.文件上传的路径String uploadUrl=fileHost+"/"+filePath+"/"+newFileName;System.out.println(uploadUrl);System.out.println(filePath);//6.开始上传InputStream inputStream=null;try {inputStream=multipartFile.getInputStream();} catch (IOException e) {e.printStackTrace();}ObjectMetadata meta=new ObjectMetadata();meta.setContentType("image/jpg");//上传阿里云client.putObject(bucketName,uploadUrl,inputStream,meta);mapper.add(newFileName,uploadUrl);return "http://"+bucketName+"."+endpoint+"/"+uploadUrl;}

删除

controller层

下载

<td><a th:href="'https://junkai1.oss-cn-hangzhou.aliyuncs.com/'+${file.url}">下载</a></td>

下载只需将图片路径封装打a标签即可

springboot实现oos上传下载相关推荐

  1. SpringBoot图文教程4—SpringBoot 实现文件上传下载(亲测)

    SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+案例 思维导图」「基础篇上」 SpringBoot图文教程2-日志的使用「logback」「log4j」 Spring ...

  2. springboot改文件头_SpringBoot图文教程4—SpringBoot 实现文件上传下载

    有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 文章结尾配套自测面试题,学完技术自我测试更扎实 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例 ...

  3. Linux和windows下minio+springboot实现文件服务器上传下载和nginx反向代理

    1 minio服务器的安装 在下载minio.exe文件: windows安装minio服务器:MinIO | Code and downloads to create high performanc ...

  4. Springboot实现文件上传下载的简单demo(可参考)

    本文章详细介绍使用Springboot如何实现上传文件和下载文件接口 1. 新建一个Springboot项目 File -> New Project 根据下图指引做: 2. 点击next,选择S ...

  5. SpringBoot(SpringMVC)文件上传下载

    话说,springboot不是一个全新的框架,它只是将其它框架整合在一起,提供一个"开箱即用"的环境.此文,利用的正是SpringMVC的功能. 创建springboot项目:ht ...

  6. vue+element-ui+axios+springboot实现文件上传下载

    前端技术:vue,element-ui,axios 后台技术:springboot 本篇博客只给出关键的代码,提供思路,完全的涉及保密不方便提供 一,上传: 上传element组件代码,支持多文件,拖 ...

  7. springboot+minio文件上传下载工具类

    引入依赖 <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId ...

  8. SpringBoot实现文件上传下载功能详解(附带中文名称显示乱码问题的解决)

    文件上传模块: 首先,需要设置一个存放上传文件的目录,可以在接口中指定,也可以在配置文件中提前设置好. 这边采用的是配置文件的形式,在application.properties中指定路径为stati ...

  9. 【SpringBoot学习】5、SpringBoot 实现文件上传,图片上传并显示功能

    SpringBoot 实现文件上传,图片上传并显示功能 我先看一下<颈椎病康复指南>再给大家说怎么实现的这两个功能,毕竟只是一个新手,解决这种复杂点的问题(相对而言),还是需要花费大量时间 ...

最新文章

  1. 树——二叉搜索树的实现
  2. java运行class文件_java命令行下运行class文件
  3. osgi简介_OSGi:简介
  4. socket 编程入门教程(一)TCP server 端:7、接收与发送
  5. 阿里云:Table Store(OTS) Writer
  6. linux下编译libyuv,linux.mk
  7. 控制台打印菱形和方形
  8. Python3+Selenium3自动化测试-(四)
  9. 大数据 机器学习 人工智能_在这个季节中,您如何免费学习数据科学,人工智能和机器学习。...
  10. Shiro实战教程笔记
  11. QChart入门教程-绘制正弦曲线
  12. 苹果CMS v10模板:大橙子vfed完美版视频网站模板
  13. C语言 转义符\t占用几个空格
  14. ROM制作工具如何开通超级会员?超级会员体系有什么样的功能?
  15. Int相乘为负数问题
  16. JAVA毕设项目猎头公司业务管理系统的设计与实现(java+VUE+Mybatis+Maven+Mysql)
  17. Android 自定义相机 Camera 图片方向问题
  18. 前端判断文件后缀名_js判断上传文件后缀名是否合法
  19. 2017-2018-1 20155227 《信息安全系统设计基础》第一周学习总结
  20. 元宇宙:从数字孪生到数字共生

热门文章

  1. JAVA设计模式之中介者模式
  2. 【关于听任大佬的讲话的深刻感悟】
  3. 这个Python自动扫雷算法写完了,估计看懂的人十不存一了吧
  4. matlab2019b重装导致mjs安装失败问题解决
  5. Chrome终极全屏模式Kiosk
  6. 小程序项目之猫眼案例-代码
  7. CLH Lock 原理
  8. 强化学习、行为心理学和成瘾机制
  9. 七牛云完整详细配置(从零到一)
  10. Cura Engine 源码解析:Settings