minio的单机安装以及使用

安装步骤参考如下两个博客 一个参考了下载,一个参考了启动 minio 有web控制面板 可以参考如下链接 自己看看就明白了
安装minio相较于fastdfs简单太多了
https://www.jianshu.com/p/bdc...
https://blog.csdn.net/qq_3777...
springboot代码示例是从gitee上拉取的,看一下就明白了没必要自己写
https://gitee.com/shenzhanwan...
在这里只做一个简单的记录,避免自己忘记,如果能帮助到有需要的人更好了

minio在Ubuntu 20.04.3 LTS下的安装

下载服务端、客户端
guochuang@guochuang-ubuntu-1:/usr/local$ sudo wget https://dl.min.io/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio && chmod +x /usr/local/bin/minio
guochuang@guochuang-ubuntu-1:/usr/local/bin$ sudo chmod +x ./minio
创建文件存储目录
guochuang@guochuang-ubuntu-1:/usr/local/bin$ sudo mkdir minio_data
指定文件存储目录并启动 此方式启动 关闭窗口 进程也会关闭 其他方式自己百度,再次不做过多介绍
guochuang@guochuang-ubuntu-1:/usr/local/bin$ sudo ./minio server ./minio_data/ --console-address '0.0.0.0:9999'

集成springboot使用

pom


  io.minio
  minio
  8.2.0

yml

server:
  port: 8080

logging:
  config: classpath:log4j2.xml

spring:
  servlet:
    multipart:
      max-file-size: 100000MB
      max-request-size: 100000MB
      
#minio配置
minio:
  url: http://192.168.114.128:9000/  #对象存储服务的URL
  accessKey: minioadmin #Access key账户
  secretKey: minioadmin  #Secret key密码

操作minio的工具类

package boot.spring.util;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import boot.spring.domain.Fileinfo;
import io.minio.BucketExistsArgs;
import io.minio.GetObjectArgs;
import io.minio.ListObjectsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
import io.minio.RemoveBucketArgs;
import io.minio.RemoveObjectArgs;
import io.minio.Result;
import io.minio.messages.Bucket;
import io.minio.messages.Item;

@Component
public class MinioUtil {
    @Autowired
    private MinioClient minioClient;
    
    /**
     * 创建一个桶
     */
    public void createBucket(String bucket) throws Exception {
        boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucket).build());
        if (!found) {
            minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucket).build());
        }
    }
    
    /**
     * 上传一个文件
     */
    public void uploadFile(InputStream stream, String bucket, String objectName) throws Exception {
        minioClient.putObject(PutObjectArgs.builder().bucket(bucket).object(objectName)
                .stream(stream, -1, 10485760).build());
    }
    
    /**
     * 列出所有的桶
     */
    public List listBuckets() throws Exception {
        List list = minioClient.listBuckets();
        List names = new ArrayList<>();
        list.forEach(b -> {
            names.add(b.name());
        });
        return names;
    }
    
    /**
     * 列出一个桶中的所有文件和目录
     */
    public List listFiles(String bucket) throws Exception {
        Iterable> results = minioClient.listObjects(
                ListObjectsArgs.builder().bucket(bucket).recursive(true).build());
            
            List infos = new ArrayList<>();
                results.forEach(r->{
                    Fileinfo info = new Fileinfo();
                    try {
                        Item item = r.get();
                        info.setFilename(item.objectName());
                        info.setDirectory(item.isDir());
                        infos.add(info);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                });
        return infos;
    }
    
    /**
     * 下载一个文件
     */
    public InputStream download(String bucket, String objectName) throws Exception {
        InputStream stream = minioClient.getObject(
                      GetObjectArgs.builder().bucket(bucket).object(objectName).build());
        return stream;
    }
    
    /**
     * 删除一个桶
     */
    public void deleteBucket(String bucket) throws Exception {
        minioClient.removeBucket(RemoveBucketArgs.builder().bucket(bucket).build());
    }
    
    /**
     * 删除一个对象
     */
    public void deleteObject(String bucket, String objectName) throws Exception {
        minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucket).object(objectName).build());
    }
}

你可能感兴趣的:(minio的单机安装以及使用)