首页 > 其他分享 >mino对象储存

mino对象储存

时间:2023-05-23 12:12:12浏览次数:56  
标签:储存 minio mino 对象 paramConfig private import public String

mino 版本 linux安装 

 

1、安装包下载

https://dl.min.io/server/minio/release/linux-amd64/minio
 

建议使用某雷下载,速度会快点,下载包上传到/opt/minioconfig/run目录下。

2、创建数据存储目录

mkdir -p /data/minio/data
 

3、服务启动

启动并指定数据存放地址

/opt/minioconfig/run/minio server /data/minio/data/
 

输出日志

Endpoint:  http://localhost:9000  http://127.0.0.1:9000    
AccessKey: minioadmin 
SecretKey: minioadmin
 

这里就是登录地址和账号密码。

 

整合SpringBoot环境

1、基础依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>3.0.12</version>
</dependency>
 

2、基础配置

配置要素:地址和端口,登录名,密码,HTML存储桶,图片存储桶。

 

minio:
  endpoint: http://192.168.72.133:9000
  accessKey: minioadmin
  secretKey: minioadmin
  bucketNameHtml: html
  bucketNameImage: image
 

文件上传之后,可以基于文件地址直接访问,但是需要在MinIO中配置文件的读写权限:

 

3、配置参数类

@Component
@ConfigurationProperties(prefix = "minio")
public class ParamConfig {

    private String endpoint ;
    private String accessKey ;
    private String secretKey ;
    private String bucketNameHtml ;
    private String bucketNameImage ;
    // 省略 get 和 set方法
}
 

4、基于MinIO配置类

封装MinIO客户端连接工具,文件上传的基础方法,返回文件在MinIO服务上的URL地址。

import io.minio.MinioClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;

@Component
public class MinIOConfig {

    private static final Logger LOGGER = LoggerFactory.getLogger(MinIOConfig.class) ;

    @Resource
    private ParamConfig paramConfig ;

    private MinioClient minioClient ;

    /**
     * 初始化 MinIO 客户端
     */
    @PostConstruct
    private void init(){
        try {
            minioClient = new MinioClient(paramConfig.getEndpoint(),
                                          paramConfig.getAccessKey(),
                                          paramConfig.getSecretKey());
        } catch (Exception e) {
            e.printStackTrace();
            LOGGER.info("MinIoClient init fail ...");
        }
    }

    /**
     * 上传 <html> 页面
     */
    public String uploadHtml (String fileName, String filePath) throws Exception {
        minioClient.putObject(paramConfig.getBucketNameHtml(),fileName,filePath);
        return paramConfig.getEndpoint()+"/"+paramConfig.getBucketNameHtml()+"/"+fileName ;
    }

    /**
     * 上传 <img> 图片
     */
    public String uploadImg (String imgName, String imgPath) throws Exception {
        minioClient.putObject(paramConfig.getBucketNameImage(),imgName,imgPath);
        return paramConfig.getEndpoint()+"/"+paramConfig.getBucketNameImage()+"/"+imgName ;
    }
}
 

5、服务实现

提供两个基础方法:HTML和图片上传,存储在不同位置。

import com.minio.file.config.MinIOConfig;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

@Service
public class UploadServiceImpl implements UploadService {

    @Resource
    private MinIOConfig minIOConfig ;

    // 上传 <html> ,返回服务器地址
    @Override
    public String uploadHtml(String fileName, String filePath) throws Exception {
        return minIOConfig.uploadHtml(fileName,filePath);
    }

    // 上传 <img> ,返回服务器地址
    @Override
    public String uploadImg(String imgName, String imgPath) throws Exception {
        return minIOConfig.uploadImg(imgName,imgPath);
    }
}
 

上传之后,基于浏览器访问接口返回的url,查看效果:

 

参考源码:https://gitee.com/cicadasmile/middle-ware-parent/tree/master/ware23-minio-file

标签:储存,minio,mino,对象,paramConfig,private,import,public,String
From: https://www.cnblogs.com/wdswgj/p/17423112.html

相关文章

  • 07-面向对象
    1.类和对象1.1类和对象的理解客观存在的事物皆为对象,所以我们也常常说万物皆对象。类类的理解类是对现实生活中一类具有共同属性和行为的事物的抽象类是对象的数据类型,类是具有相同属性和行为的一组对象的集合简单理解:类就是对现实事物的一种描述类的组成属性:指......
  • C# 面向对象
    前言C#是一种面向对象、类型安全的语言。❓什么是面向对象面向对象编程(OOP)是如今多种编程语言所实现的一种编程范式,包括Java、C++、C#。面向对象编程将一个系统抽象为许多对象的集合,每一个对象代表了这个系统的特定方面。对象包括函数(方法)和数据。一个对象可以向其他部分的......
  • iOS MachineLearning 系列(17)—— 几个常用的对象识别 CoreML 模型
    iOSMachineLearning系列(17)——几个常用的对象识别CoreML模型上一篇文章中,我们介绍了几个官方的图片分类的模型,图片分类模型的应用场景在于将图片中最主要的事物进行识别,在已有的词库中找到最可能得事物。而对象识别则要更高级一些。再之前的文章,我们介绍过可以使用官方提供的......
  • 指向对象数组的对象指针
    #include<iostream>usingnamespacestd;classstudent{public:student(intn,floats):num(n),score(s){}voiddisplay(void);private:intnum;floatscore;};voidstudent::display(void){cout<<num<<":"......
  • 编程打卡:面向对象程序设计
    importosimportsqlite3#Createadatabaseconnectionconn=sqlite3.connect('todo.db')#Createatodotablecur=conn.cursor()cur.execute('''CREATETABLEtodo(idINTEGERPRIMARYKEYAUTOINCREMENT,titleTEXTNOTNUL......
  • Unity自带的对象池——UnityEngine.Pool
    简介之前对象池都是自己写,现在unity的API自带对象池了,UnityEngine.Pool官方文档:https://docs.unity3d.com/ScriptReference/Pool.CollectionPool_2.html主要包含了几个类1.CollectionPool<T0,T1>集合池,可以放List、HashSet、Dictionary啥的,非线程安全2.DictionaryPool<T0,T1>......
  • Python跨进程共享数据/对象
    转载:(14条消息)Python跨进程共享数据/对象_python多进程共享对象_alpha.5的博客-CSDN博客1.跨进程共享方式在multiprocess库中,跨进程对象共享有三种方式:(1)第一种仅适用于原生机器类型,即python.ctypes当中的类型,这种在mp库的文档当中称为sharedmemory方式,即通过共享内存共享对......
  • 23年春面向对象第三单元分析和总结
    23年春面向对象第三单元分析和总结目录概述JML JML基本 JML表达式 局部容器 操作符架构 连通块数目查询 三元环数目查询 最小环查询测试 测试的分类 测试工具 构造测试用例 OKtestbug分析总结概述  OO第三单元主要围绕着JML(JavaModelingLan......
  • Android数据储存之File文件储存数据
     一.存储在内部还是外部?AndroidManifest.xml中manifest标签下有一个属性android:installLocation,用于指定应用程序安装在什么地方,该属性有三个可选值:auto:程序可能被安装在外部存储器上,例如SD卡;但是默认会被安装到手机内存中。当手机内存为空时,程序将被安装到外部存储器上;当程序安......
  • 阿里云对象存储OSS————跨域资源共享(CORS)(m3u8 无法加载m3u8:跨域访问被拒绝)...
    今天在做视频直播录像的时候,添加一个录制APP的.M3U8文件到OSS的一个test文件中存储,结果是访问不到了:提示:无法加载m3u8:跨域访问被拒绝!!!!!项目代码测试地址:https://github.com/Tinywan/ThinkPhpStudy阿里云帮助文档:https://help.aliyun.com/document_detail/31928.html......