MinIo简单使用

对于项目的文件存储可以使用像阿里云、腾讯云这种平台的服务,当然也可以自己搭建一个文件管理系统。这里简单介绍一下MinIo
官网地址: http://www.minio.org.cn/

先根据官网地址进行下载MinIo的server端和client端,这里需要注意一点的是,在官网给的下载地址http://dl.minio.org.cn/server/minio/release/windows-amd64/minio.exe
https://dl.minio.org.cn/client/mc/release/windows-amd64/mc.exe
直接访问都是会出现404错误的,这个问题可以通过更改域名解决
更改成
http://dl.minio.io/server/minio/release/windows-amd64/minio.exe
http://dl.minio.io/client/mc/release/windows-amd64/mc.exe
这样就可以正常把server及client端下载下来了。

官网下载地址出现404的情况是截止本文发布之前都存在的,如果你访问官网时没有此错误,请忽略上面的内容。

下载好后,将server client端放到一个你想放的文件夹,本文以E:\minio路径放置,并创建了一个file文件夹来作为server端启动时指定的路径,如图:
在这里插入图片描述
在此路径下进入cmd窗口,输入如下命令
.\minio.exe server E:\minio\file
在这里插入图片描述
请注意minio.exe默认占用9000端口,请保持此端口空闲,或者可以去官网查询启动时添加端口参数命令。

当出现这样就说明你的minio启动正常,选择你的浏览器输入http://localhost:9000/,会自动跳转到minio控制台界面。
登录的用户名和密码会在启动minio的cmd窗口显示。
如: minioadmin

然后可以在导航栏的identity/user处创建一个用户,点击create user按钮
在这里插入图片描述
在这里插入图片描述
用户名密码以及权限可以自行选择,创建好用户之后,也可以使用该用户以及密码进行minio控制台的登录。

点击自己创建的用户,并点击service account按钮然后点击create service account按钮
在这里插入图片描述
会随机生成accessKey secretKey,点击create按钮后.
会将这两个key进行展示,此时可以复制粘贴到一个文本文件上,后续使用代码上传文件时需要用到这两个key
在这里插入图片描述
然后再创建一个bucket
在这里插入图片描述
在这里插入图片描述
尽量给你的bucket取一个有意义的名字或者是比较好记的,后面也会用到。

开始编写一个上传文件的demo
创建一个maven项目,导入依赖:
pom.xml

<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>7.0.2</version>
</dependency>

注意:不同版本的minio包,在使用时会有一些不同。如果想将下面的demo正常运行,建议使用和我一样的依赖

FileUploader.java

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.NoSuchAlgorithmException;
import java.security.InvalidKeyException;
import java.text.SimpleDateFormat;
import java.util.Date;

import io.minio.PutObjectOptions;
import org.xmlpull.v1.XmlPullParserException;

import io.minio.MinioClient;
import io.minio.errors.MinioException;

public class FileUploader {
    public static void main(String[] args) throws NoSuchAlgorithmException, IOException, InvalidKeyException, XmlPullParserException {
        uploadFile();
    }

    private static void uploadFile() throws InvalidKeyException, IOException, NoSuchAlgorithmException {
        try {
        	//你的endpoint,本机可以不变
            String endpoint = "http://localhost:9000";
            //你的accessKey
            String accessKey = "你的accessKey";
            //你的sercetKey
            String secretKey = "你的sercetKey";
            //你的bucket
            String bucketName = "你的bucket";
            // 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象
            MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey);

            // 检查存储桶是否已经存在
            boolean isExist = minioClient.bucketExists(bucketName);
            if (isExist) {
                System.out.println("Bucket already exists.");
            } else {
                // 创建一个名为asiatrip的存储桶,用于存储照片的zip文件。
                minioClient.makeBucket(bucketName);
            }

            SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/");
            String date = sdf.format(new Date());
			//找一个你电脑上图片的绝对路径,最好是PNG图片
            File file = new File("找一个你电脑上文件的图片的绝对路径");
            long size = file.length();
            String fileName = file.getName();
            InputStream is = new FileInputStream(file);
            //将待上传的文件的路径设置成 年/月/日/uuid+file01.png 
            //你也可以自定义上传文件的路径,这样设置是为了更好的管理
            String uuid = UUID.randomUUID().toString().replace("-", "").substring(0, 6);
            String fileUploadPath = date + uuid + "file01" + fileName.substring(fileName.lastIndexOf("."));

            PutObjectOptions options = new PutObjectOptions(size, -1);
            //设置图片的contentType,如果不是PNG图片就自行修改对应的contentType,这样做的目的是为了上传之后访问图片时可以在浏览器预览而不用下载,当然也可以注释这行代码
            options.setContentType("image/png");
            
            minioClient.putObject(bucketName, fileUploadPath, is, options);

            System.out.println(file.getAbsolutePath() + "is successfully uploaded as 【" + fileUploadPath + "】 to 【" + bucketName + "】bucket.");
        } catch (MinioException e) {
            System.out.println("Error occurred: " + e);
        }
    }
}

这样就可以将所选的图片上传到minio上了,然后去你的bucket刷新一下就能看到刚刚上传的文件。
在这里插入图片描述
如果设置了正确的contentType就会有preview这个选项就可以在控制台预览图片,也可以点击share,复制url到浏览器打开,如果没有设置contentType就会需要下载
在这里插入图片描述

上传图片到minio就简单的完成了,上传其他文件也是一样的,至于需不需要预览功能完全取决于你自己。

  • 23
    点赞
  • 140
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Windows Minio客户端使用手册 Minio是一种开源的分布式对象存储系统,可以存储海量数据并提供高可靠性和高可扩展性。它可以在各种环境下运行,如公有云、私有云或混合云中。在Windows上使用Minio客户端可以方便地上传、下载和管理对象存储数据。 一、安装和配置Minio客户端 1.在Minio网站(https://min.io/download#/windows)上下载适合您Windows版本的Minio客户端。 2.将下载的Minio客户端安装包解压到您选择的文件夹中。 3.配置Minio客户端与服务器连接,输入以下命令:minio.exe config host add <别名> <服务器> <访问密钥> <秘钥>. <别名>为您与服务器连接的别名,<服务器>为Minio服务器的域名或IP地址,<访问密钥>和<秘钥>是访问Minio服务器的认证信息。 4.设置环境变量,以防止在命令提示符中输入完整的路径以启动Minio.exe。将Minio.exe的目录添加到PATH环境变量中,这将使您能够从任何位置运行Minio.exe。 二、使用Minio客户端上传和下载文件 1.使用Minio客户端上传文件。运行以下命令:minio.exe cp <本地文件> <别名>/<桶名>/<路径/文件名>。 <本地文件>是您要上传的文件,<别名>/<桶名>/<路径/文件名>是您要将文件上传到的Minio存储桶地址。 2.使用Minio客户端下载文件。运行以下命令:minio.exe cp <别名>/<桶名>/<路径/文件名> <本地文件>。 <别名>/<桶名>/<路径/文件名>是您要从Minio存储桶下载的文件地址,<本地文件>是您要将文件下载到的本地文件地址。 三、管理Minio客户端对象存储 1.列出所有Minio存储桶。运行以下命令:minio.exe ls <别名> <别名>是您要列出存储桶的Minio服务器别名。 2.创建Minio存储桶。运行以下命令:minio.exe mb <别名>/<桶名> <别名>/<桶名>是您要创建的Minio存储桶地址。 3.删除Minio存储桶。运行以下命令:minio.exe rb <别名>/<桶名> <别名>/<桶名>是您要删除的Minio存储桶地址。 总结: 安装Minio客户端可以方便地上传、下载和管理您的对象存储数据。通过简单的配置步骤,您可以轻松连接到Minio服务器。使用Minio客户端命令行实用程序来完成各种管理任务,例如列出、创建和删除存储桶。在日常工作中合理使用Minio客户端可以提高工作效率,大大减少了管理和维护数据的成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值