您的位置 首页 java

CentOS,安装MinIO开源对象存储套件,Java进行上传和下载操作

MinIO

MinIO介绍

Minio是个基于Golang编写的开源 对象存储 套件,是一个基于Apache License v2.0开源协议的对象存储服务,兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,如:图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

基于Minio轻量的特点,它得到类似 java Python Go 等语言的 sdk 支持。

地址:

部署

说明

操作系统:CentOS7,介质地址:,安装目录:/opt/module/minio,挂载单独硬盘。

root 用户操作:

挂载硬盘:

 创建目录: mkdir  -p /data/minio
执行挂载:mount /dev/sdb1 /data/minio
自动挂载:echo "/dev/sdb1 /data/minio ext4 defaults 0 0">>/etc/fstab
授权目录: chown admin:admin /data/minio  

admin用户操作:

 $ mkdir /data/minio/dt1
$ mkdir -p /opt/module/minio/bin
$ mkdir -p /opt/module/minio/logs
$ cd /opt/module/minio/bin
$ wget 
$ chmod +x minio  

环境变量 配置和启动:

 sudo vim /etc/pro File .d/my_en.sh 

 export  MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=12345678
export PATH=$PATH:/opt/module/minio/bin

$ . /etc/profile
$ echo $MINIO_ACCESS_KEY
$ echo $MINIO_SECRET_KEY
$
$ nohup minio server 
  --console-address :9090 
  --address :9098 
  /data/minio/dt1 
  >/opt/module/minio/logs/minio.log 2>&1 &
$ ps -ef | grep minio  

编写启停脚本

 #!/bin/bash

if [ $# -lt 1 ]
then
echo "请输入参数: start、stop"
fi

case $1 in
"start")
nohup /opt/module/minio/bin/minio server 
  --console-address :9090 
  --address :9098 
  /data/minio/dt1 
  >/opt/module/minio/logs/minio.log 2>&1 &
;;
"stop")
kill -9 `ps -ef | grep minio | grep -v grep | awk '{print $2}'`
;;
esac  

访问地址: ,admin,12345678

注:创建Bucket,就可以上传下载文件了。

Java进行上传和下载操作

pom.xml

 <dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.9.0</version>
</dependency>
<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.3.3</version>
</dependency>  

案例代码

 import io.minio.*;

import java.io.File;
import java.io. InputStream ;
import java.util.UUID;

public class MinioDemo01 {

    public  static   void  main(String[] args) throws  Exception  {
        // 地址
        String minioServer = "#34;;
        //认证用户名
        String username = "admin";
        //认证密码
         String  password = "12345678";
        MinioClient minioClient = MinioClient.builder().endpoint(minioServer).credentials(username, password).build();
        // 创建bucket
        String bucketName = "hello";
        createBucket(minioClient, bucketName);
        // 上传文件
        String localFilePath = "D:\Temp\data.zip";
        String fileURL = uploadLocalFile(minioServer, minioClient, bucketName, localFilePath);
        System.out.println("地址:" + fileURL);
        // 
    }

    public static InputStream download(MinioClient minioClient, String bucket, String fileName, File localFilePath) throws Exception {
        InputStream inputStream = minioClient. GetObject (GetObjectArgs.builder().bucket(bucket).object(fileName).build());
        return inputStream;
    }

    public static String uploadLocalFile(String minioServer, MinioClient minioClient, String bucket, String filePath) throws Exception {
        File file = new File(filePath);
        String fileName = file.getName();
        String newFileName = UUID.randomUUID().toString() + fileName.substring(fileName.indexOf("."));
        minioClient.uploadObject(UploadObjectArgs.builder().bucket(bucket).object(newFileName).filename(filePath).build()).toString();
        return String.format("%s/%s/%s", minioServer, bucket, newFileName);
    }

    public static boolean createBucket(MinioClient minioClient, String bucketName) {
         boolean  isCreated = false;
        try {
            boolean isExist = minioClient.bucket Exists (BucketExistsArgs.builder().bucket(bucketName.toLowerCase()).build());
             if  (!isExist) {
                minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName.toLowerCase()).build());
                isCreated = true;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return isCreated;
    }

}  

文章来源:智云一二三科技

文章标题:CentOS,安装MinIO开源对象存储套件,Java进行上传和下载操作

文章地址:https://www.zhihuclub.com/174660.shtml

关于作者: 智云科技

热门文章

网站地图