1. MinIO形式文件上传:

首先需要有MinIO服务器,这里略过。

    @PostMapping("file/upload")public String MinIOUpload(MultipartFile file) {if (file.isEmpty() || file.getSize() == 0) {return "文件为空";}try {MinioClient minioClient = new MinioClient("http://***.***.**.**:9000", "****", "******");    //连接if (!minioClient.bucketExists("test")) {  //是否存在名为“test”的bucketminioClient.makeBucket("test");}String fileName = file.getOriginalFilename();String newName ="pic/"+UUID.randomUUID().toString().replaceAll("-", "")+ fileName.substring(fileName.lastIndexOf("."));//新的名称,pic会是bucket下的文件夹InputStream inputStream = file.getInputStream();  //获取file的inputStreamminioClient.putObject("test", newName, inputStream, "application/octet-stream");    //上传inputStream.close();String url = minioClient.getObjectUrl("test", newName);  //文件访问路径return url;} catch (Exception e) {e.printStackTrace();}return "上传失败";}

访问配置

MinIO形式上传的文件也不能直接访问,需要设置bucket的policy策略:


删除:

     String objectName = url.replaceAll("http://***.***.**.**:9000/test/", "");try {MinioClient minioClient = new MinioClient("http://***.***.**.**:9000", "****", "********");minioClient.removeObject("test", objectName);} catch (Exception e) {e.printStackTrace();}
  • 2. 传统形式文件上传
    @PostMapping("pic/upload")public String picUpload(MultipartFile file) {if (file.isEmpty() || file.getSize() == 0) {return "文件为空";}try {String fileUrl = "E:/pic/";String fileName = file.getOriginalFilename();String newName = UUID.randomUUID().toString().replaceAll("-", "")+ fileName.substring(fileName.lastIndexOf("."));  //生成新的NameFile dest = new File(fileUrl + newName);if (!dest.getParentFile().exists()) {   //判断本地路径是否存在dest.getParentFile().mkdirs();}file.transferTo(dest); // 保存文件return "/pic/view/" + newName;  //这里是虚拟路径} catch (IOException e) {e.printStackTrace();return "上传失败";  }}

访问

传统形式上传的文件不能通过本地路径访问,需要设置虚拟路径(SpringBoot项目虚拟路径设置),设置之后就可以通过虚拟路径访问了。

删除:

            String name = url.substring(url.lastIndexOf("/")+1);url = "E:/pic/" + name;File file = new File(url);file.delete();

Java MinIO文件上传返回访问路径及访问配置相关推荐

  1. java实现MinIO文件上传,并将视频文件截图,将视频封面及视频通过MinIo上传到服务器中

    java实现MinIO文件上传,并将视频文件截图,将视频封面及视频通过MinIo上传到服务器中 配置完毕,接下来开始代码编写. 说明 总过程分为两步. 1.配置MinIO的环境. 2.代码编写. 下面 ...

  2. java文件流 m.jb51.net_FasfDFS整合Java实现文件上传下载功能实例详解

    今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 org.c ...

  3. Java将文件上传到ftp服务器

    Java将文件上传到ftp服务器 首先简单介绍一下什么是FTP,以及如何在自己的电脑上搭建一个ftp服务器: -- FTP是文件传输协议(FTP)是一种客户端/服务器协议,用于将文件传输到主机或与主机 ...

  4. H5+JAVA的文件上传,断点续传

    需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...

  5. java多文件上传plupload控件实现多图片上传(二)

    接上篇 java多文件上传plupload控件实现多图片上传(一) 续写PluploadUtil 和 Plupload PO类,以及后台的action. 至此,可实现多文件上传功能. 上传文件Acti ...

  6. centos nfs java_CentOS下安装配置NFS并通过Java进行文件上传下载

    1:安装NFS (1)安装 yum install nfs-utils rpcbind (2)启动rpcbind服务 systemctl restart rpcbind.service 查看服务状态 ...

  7. 文件上传 java 完美,vue+java实现文件上传(excel等),会出现跨域问题,直接用form表单提交就不会有问题了(new FormData())...

    vue+java实现文件上传(excel等),会出现跨域问题,直接用form表单提交就不会有问题了(new FormData()) 地址:https://www.cnblogs.com/muscles ...

  8. Java实现文件上传到服务器(FTP方式)

    Java实现文件上传到服务器(FTP方式) 1,jar包:commons-net-3.3.jar 2,实现代码: //FTP传输到数据库服务器private boolean uploadServerB ...

  9. java ftp文件到服务器配置,Java实现文件上传到服务器(FTP方式)

    Java实现文件上传到服务器(FTP方式) 1,jar包:commons-net-3.3.jar 2,实现代码: //FTP传输到数据库服务器 private boolean uploadServer ...

最新文章

  1. Java8 Stream 使用
  2. Scala基础教程(一):简介、环境安装
  3. 搜索引擎的选择—百度还是谷歌?
  4. 《Android 应用案例开发大全(第二版)》——导读
  5. 通俗易懂的SpringBoot教程---day1---Springboot入门教程介绍
  6. python中pygame输入换行文字,Pygame:写多行
  7. 2017.7.17数据类型
  8. jQuery-$(document).ready和$(window).load有什么区别?
  9. Python验证码识别处理实例
  10. Spring的概述及主要模块
  11. ubuntu14 卸载 mysql_ubuntu14.04完全卸载mysql
  12. 数据库中外连接的三种形式(左连接,右连接,全连接)
  13. 拼音加加 4.0 正式版发布了
  14. 兄弟扫描机无法连接计算机,可以网络打印, 但是不能进行网络扫描。
  15. x64dbg 配置插件SDK开发环境
  16. WebSocket 简述
  17. 包围盒----碰撞检测
  18. 卡普的21个NP完全问题-问题描述
  19. PREEMPT-RT
  20. HTML学习9 JS 数字和字符串 变量的类型 运算符和表达式 布尔值和关系运算符、逻辑运算符

热门文章

  1. 解决 ‘Response‘ object has no attribute ‘body‘
  2. python keystone_keystone命令与client接口学习
  3. python2.7更新python3.6_python2.7升级到python3.6注意事项
  4. 原生安卓10怎么打开面部识别_《原创》安卓系统手机只需一步立即提速翻倍,越久的手机越见效...
  5. java入门申请,《java入门如此简单》——基础知识1
  6. html清除div浮动,HTML_清除浮动的最优方法:CSS,在CSS森林群里讨论一个margin的 - phpStudy...
  7. SFML 与 VS2015 的安装配置
  8. pandas重新设置列索引_python数据分析包Pandas(一)
  9. 句子分类_Bert做新闻标题文本分类
  10. 引用activity_允许其他应用启动您的 Activity