广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >MinIO实现文件上传存储
  • 333
分享到

MinIO实现文件上传存储

java 2023-09-02 20:09:59 333人浏览 八月长安
摘要

MiNIO 目录MinIO概念MinIO下载安装启动下载安装启动 MinIO实现上传文件导入maven坐标在application文件添加配置实现代码 目录 Minio概念

MiNIO

目录

Minio概念

  1. MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储。它与 Amazon S3 云存储服务 api 兼容。使用 MinIO 为机器学习、分析和应用程序数据工作负载构建高性能基础架构
  2. MinIO是高性能对象存储,什么是对象存储(Object Storage Service),对象存储是支持海量用户远程访问的无限容量廉价存储系统,即是存储系统。
  3. 它由桶(bucket,对应windows下的文件夹),组成目录结构,桶中直接存放对象(Object,对应Windwos下的文件),桶中不能再创建桶,但是能创建文件夹。

MinIO下载安装启动

访问官网:https://docs.min.io/
进入官网点击右上角Download

下载

在这里插入图片描述
点击Windows下载服务端

在这里插入图片描述

安装

将MinIO.exe 拷贝到自己的目录下去,并创建一个data目录

在这里插入图片描述

启动

通过命令行启动Minio :
minio server ./data

在这里插入图片描述
启动完成后,可以看到访问的路径:Http://127.0.0.1:9000

在这里插入图片描述
使用提供的账号密码进行登录

​ 账号:minioadmin

​ 密码:minioadmin

MinIO实现上传文件

导入Maven坐标

     io.minio     minio     8.4.3

在application文件添加配置

# MinIO配置minio:  endpoint: 127.0.0.1  port: 9000  accessKey: minioadmin  secreTKEy: minioadmin  secure: false  bucketName: "demo"  configDir: "/data/excel"

实现代码

@Data@Component@ConfigurationProperties(prefix = "minio")public class Minioconfig {    private final static String HTTP = "http://";    //endPoint是一个URL,域名,IPv4或者IPv6地址    private String endpoint;    //tcp/IP端口号    private int port;    //accessKey类似于用户ID,用于唯一标识你的账户    private String accessKey;    //secretKey是你账户的密码    private String secretKey;    //如果是true,则用的是https而不是http,默认值是true    private Boolean secure;    //默认存储桶    private String bucketName;}
public class ajaxResult extends HashMap{    private static final long serialVersionUID = 1L;        public static final String CODE_TAG = "code";        public static final String MSG_TAG = "msg";        public static final String DATA_TAG = "data";        public AjaxResult()    {    }        public AjaxResult(int code, String msg)    {        super.put(CODE_TAG, code);        super.put(MSG_TAG, msg);    }        public AjaxResult(int code, String msg, Object data)    {        super.put(CODE_TAG, code);        super.put(MSG_TAG, msg);        if (StringUtils.isNotNull(data))        {            super.put(DATA_TAG, data);        }    }        public static AjaxResult success()    {        return AjaxResult.success("操作成功");    }        public static AjaxResult success(Object data)    {        return AjaxResult.success("操作成功", data);    }        public static AjaxResult success(String msg)    {        return AjaxResult.success(msg, null);    }        public static AjaxResult success(String msg, Object data)    {        return new AjaxResult(HttpStatus.SUCCESS, msg, data);    }        public static AjaxResult error()    {        return AjaxResult.error("操作失败");    }        public static AjaxResult error(String msg)    {        return AjaxResult.error(msg, null);    }        public static AjaxResult error(String msg, Object data)    {        return new AjaxResult(HttpStatus.ERROR, msg, data);    }        public static AjaxResult error(int code, String msg)    {        return new AjaxResult(code, msg, null);    }}
@RestControllerpublic class CommonController extends BaseController {    private static final Logger log = LoggerFactory.getLogger(CommonController.class);    @Autowired    private ISysFileService fileService;        @PostMapping("/common/upload")    public AjaxResult uploadFile(MultipartFile file){        try{            // 上传文件路径            return fileService.upload(file);        }catch (Exception e){            return AjaxResult.error(e.getMessage());        }    }}
public interface ISysFileService {AjaxResult upload(MultipartFile file);}
@Service@Slf4jpublic class SysFileServiceImpl implements ISysFileService{@AutowiredMinioConfig minioConfig;@Overridepublic AjaxResult upload(MultipartFile file) {InputStream inputStream = null;//创建Minio的连接对象MinioClient minioClient = getClient();//获取存储桶String bucketName = minioConfig.getBucketName();try {inputStream = file.getInputStream();// Make bucketName bucket if not exist.boolean found =minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());if (!found) {// Make a new bucket called bucketName.minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());} else {log.info("Bucket " +"["+bucketName+ "]"+" already exists.");}//Uploads given stream as object in bucket.String oldFileName = file.getOriginalFilename();String objectName = new SimpleDateFORMat("yyyy/MM/dd/").format(new Date())+IdUtils.simpleUUID()+oldFileName.substring(oldFileName.lastIndexOf("."));minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(objectName).stream(inputStream, file.getSize(), -1).contentType(file.getContentType()).build());AjaxResult ajax = AjaxResult.success();ajax.put("fileName", "/"+bucketName+"/"+objectName);ajax.put("url", "http://"+minioConfig.getEndpoint()+":"+minioConfig.getPort()+"/"+minioConfig.getBucketName()+"/"+objectName);return ajax;}catch(Exception e){e.printStackTrace();return AjaxResult.error("上传失败");}finally {//防止内存泄漏if (inputStream != null) {try {inputStream.close(); // 关闭流} catch (IOException e) {log.debug("inputStream close IOException:" + e.getMessage());}}}}private MinioClient getClient(){MinioClient minioClient =MinioClient.builder().endpoint("http://"+minioConfig.getEndpoint()+":"+ minioConfig.getPort()).credentials(minioConfig.getAccessKey(),minioConfig.getSecretKey()).build();return minioClient;}}

响应数据格式

{"msg":"操作成功","fileName":"/demo/2022/10/14/efcb6266efba42a4b35344181964be36.pdf","code":200,"url":"http://127.0.0.1:9000/demo/2022/10/14/efcb6266efba42a4b35344181964be36.pdf"}

到此,上传文件到MinIO服务器就完成了。

来源地址:https://blog.csdn.net/m0_52388228/article/details/127319556

--结束END--

本文标题: MinIO实现文件上传存储

本文链接: https://www.lsjlt.com/news/391375.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MinIO实现文件上传存储
    MinIO 目录MinIO概念MinIO下载安装启动下载安装启动 MinIO实现上传文件导入maven坐标在application文件添加配置实现代码 目录 MinIO概念...
    99+
    2023-09-02
    java
  • 对象存储MinIO(实现文件上传、读取、下载、删除)
    一、 MinIO         MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服 务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/ 虚拟机镜...
    99+
    2023-08-31
    spring boot java mysql
  • Python怎么实现上传Minio文件
    本篇内容介绍了“Python怎么实现上传Minio文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!环境依赖安装minio以及oss2依赖p...
    99+
    2023-06-25
  • Python实现上传Minio和阿里Oss文件
    目录前言环境依赖代码补充前言 本文提供Python上传minio以及阿里oss文件工具,给自己留个记录。 环境依赖 安装minio以及oss2依赖 pip install min...
    99+
    2022-11-12
  • Springboot怎么集成minio实现文件存储
    本篇内容主要讲解“Springboot怎么集成minio实现文件存储”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Springboot怎么集成minio实现文件存储”吧!MinIO 是一款基于G...
    99+
    2023-06-29
  • SpringBoot使用Minio进行文件存储的实现
    目录一、minio二、SpringBoot 使用 Minio 进行文件存储三、测试一、minio MinIO 是一个高性能的对象存储原生支持 Kubernetes 部署的解决方案。 ...
    99+
    2022-11-13
  • Springboot集成minio实现文件存储的实现代码
    目录1. 安装部署1.1 Linux 简单部署1.2 Docker 部署2. Spring boot 整合3. 问题记录4. 项目地址在我们平时做项目的时候,文件存储是个很常见的需求...
    99+
    2022-11-13
  • 【Java编程系列】Minio实现文件上传下载
    热门系列: 【Java编程系列】Amazon S3实现文件上传下载 目录 热门系列: 1、前言 2、Minio实战代码 2.1 Minio环境部署 2.2 Minio的Sdk对接实现 2.2.1 Minio Maven依赖 2.2.2 m...
    99+
    2023-09-02
    minio minio上传下载 minio存储 minio预览 minio永久访问
  • Java 上传文件到MinIO服务器上
    一、MinIO配置 主界面: 2.创建桶的文件路径 你可以设置任意想要配置的路径  3.管理桶权限 这里Prefix写 * 是为了匹配所有请求路径 Access: readonly就可以通过url访问图片了。 二、SpringBoo...
    99+
    2023-10-02
    java spring boot okhttp
  • SpringBoot整合MinIO实现文件上传的方法详解
    目录前言1. MinIO 简介2. MinIO 安装3. 整合 Spring Boot4. 配置nginx5. 小结前言 现在 OSS 服务算是一个基础服务了,很多云服务厂商都有提供...
    99+
    2022-11-13
  • 小程序上传文件至云存储的实现
    在小程序云开发中,要实现上传文件至云存储,有两种方案:云函数和HTTP API,前者是在小程序内调用的,而后者则是在小程序外调用的。本文主要讲讲如何使用HTTP API实现小程序外上...
    99+
    2022-11-13
  • SpringBoot怎么整合Minio文件存储
    这篇“SpringBoot怎么整合Minio文件存储”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot怎么整...
    99+
    2023-06-29
  • vue+Minio实现多文件进度上传的详细步骤
    目录背景实现方案了解一下Mino实现步骤1.创建存储桶2.选择文件3.创建上传队列4.开始上传5 上传完成后,同步文件地址给后端6.删除文件完整代码源码分享总结背景 最近突然接到了一...
    99+
    2022-11-13
  • Java实现文件上传保存
    本文实例为大家分享了Java实现文件上传保存的具体代码,供大家参考,具体内容如下 框架 Spring Boot + FreeMarker + Ajax 第一次尝试Spring Boo...
    99+
    2022-11-13
  • Java实现minio上传、下载、删除文件,支持https访问
    MinIO 是一款高性能、分布式的对象存储系统,Minio是基于Go语言编写的对象存储服务,适合于存储大容量非结构化的数据,例如图片、音频、视频、备份数据等,传统对象存储用例(例如辅助存储,灾难恢复和归档)方面表现出色。 一、配置 导入...
    99+
    2023-09-03
    java spring https Powered by 金山文档
  • SpringBoot整合Minio实现上传文件的完整步骤记录
    目录Minio安装 Minio使用docker安装拉取镜像启动使用9000端口 登录控制台创建存储桶设置桶权限创建 Java 客户端依赖配置文件配置文件配置类创建 minio 客户端...
    99+
    2022-11-13
  • docker怎么安装minio及实现文件上传、删除、下载
    这篇文章主要介绍“docker怎么安装minio及实现文件上传、删除、下载”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“docker怎么安装minio及实现文件上传、删除、下载”文章能帮助大家解决问...
    99+
    2023-07-05
  • TypeScript前端上传文件到MinIO示例详解
    目录什么是MinIO本地Docker部署测试服务器上传的APITypeScript实现1. XMLHttpRequest2. Fetch API3. Axios从后端获取临时上传链接...
    99+
    2022-11-13
    TypeScript前端上传到MinIO TypeScript前端文件上传
  • Spring boot实现文件上传实例(多文件上传)
    文件上传主要分以下几个步骤:(1)新建maven java project;(2)在pom.xml加入相应依赖;(3)新建一个表单页面(这里使用thymleaf);(4)编写controller;(5)测试;(6)对上传的文件做一些限制;(...
    99+
    2023-05-31
    spring boot 文件上传
  • Vue中通过minio上传文件的详细步骤
    目录1、minio的安装2、minio.js文件2.1连接minio2.2通过stream流上传2.3通过带预签名的url上传(最好是minio设置了链接永久访问)2.4删除对象补充...
    99+
    2022-09-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作