Minio基本使用

对于项目的文件存储可以使用MinIo文件管理系统
官网地址: MinIO | High Performance, Kubernetes Native Object Storage

下载使用

先根据官网地址进行下载MinIo的server端和client端,

下载好后,将server client端放到一个你想放的文件夹,本文以C:\JAVA\RUANJIAN\minio路径放置,并创建了一个file文件夹来作为server端启动时指定的路径,如图:

在此路径下进入cmd窗口,输入如下命令

.\minio.exe server C:\JAVA\RUANJIAN\minio\file



请注意minio.exe默认占用9000端口,请保持此端口空闲,或者可以去官网查询启动时添加端口参数命令.

当出现这样就说明你的minio启动正常,选择你的浏览器输入http://localhost:9000/,会自动跳转到minio控制台界面:63682。


登录的用户名和密码会在启动minio的cmd窗口显示。
如: minioadmin

 

minio配置

然后可以在导航栏的identity/user处创建一个用户,点击create user按钮


用户名密码以及权限可以自行选择,密码需要大于8位,创建好用户之后,也可以使用该用户以及密码进行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>8.3.3</version>
</dependency>

编写上传测试类

FileUploader.java

package com.example.demo.util;
import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.UploadObjectArgs;
import io.minio.errors.MinioException;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

public class FileUploader {
    public void uploaderTest() throws IOException, NoSuchAlgorithmException, InvalidKeyException {
        try {
            // Create a minioClient with the MinIO server playground, its access key and secret key.
            MinioClient minioClient =
                    MinioClient.builder()
                            .endpoint("http://localhost:9000")//本地地址
                            .credentials("YkiUUqxc4S21cO8X",              "s64lkz48nCSGzcEaYeYA9soCMB5GmtBv")//之前保存的key
                            .build();

            // 判断你的bucket,有没有叫“你的名字”
            boolean found =
                    minioClient.bucketExists(BucketExistsArgs.builder().bucket("cxlong").build());
            if (!found) {             
                minioClient.makeBucket(MakeBucketArgs.builder().bucket("cxlong").build());
            } else {
                System.out.println("Bucket 'cxlong' already exists.");
            }

            // 上传 'C:\\Users\\CXLONG\\Pictures\\aaa1.png' 图片在minio叫 'aaa1.png' 在 //'cxlong'里面
            minioClient.uploadObject(
                    UploadObjectArgs.builder()
                            .bucket("cxlong")
                            .object("aaa1.png")
                            .filename("C:\\Users\\CXLONG\\Pictures\\aaa1.png")
                            .build());
            System.out.println(
                    "'C:\\Users\\CXLONG\\Pictures\\aaa1.png' is successfully uploaded as "
                            + "object 'C:\\Users\\CXLONG\\Pictures\\aaa1.png' to bucket 'cxlong'.");
        } catch (MinioException e) {
            System.out.println("Error occurred: " + e);
            System.out.println("HTTP trace: " + e.httpTrace());
        }
    }
}

这样就可以将所选的图片上传到minio上了,然后去你的bucket刷新一下就能看到刚刚上传的文件。

如果设置了正确的contentType就会有preview这个选项就可以在控制台预览图片,也可以点击share,复制url到浏览器打开,如果没有设置contentType就会需要下载

 

上传图片到minio就简单的完成了,上传其他文件也是一样的。

<think>嗯,用户想了解如何使用MinIO进行对象存储管理。首先,我需要回顾一下MinIO基本概念和功能。MinIO是一个开源的分布式对象存储服务,兼容Amazon S3 API,适合搭建私有云存储。用户可能对如何安装、配置以及基本操作感兴趣。 首先,安装部分。用户可能需要在不同环境中安装MinIO,比如Docker或者直接下载二进制文件。Docker安装比较常见,所以需要给出具体的命令,包括拉取镜像和运行容器,注意端口映射和数据卷挂载。还要提到如何访问管理界面,比如通过浏览器访问9000端口,以及登录的默认账户和密码。 接下来是基础管理操作。用户需要知道如何创建存储桶(Bucket),因为这是组织文件的基本单位。要说明在管理界面中如何创建,或者使用mc命令行工具。然后是关于文件上传下载,可能涉及管理界面的操作和API/SDK的使用,比如Python的例子,这样开发者可以参考。 高级配置部分,分布式部署很重要,因为MinIO的优势之一就是支持分布式模式,提高可靠性和性能。需要说明如何通过命令行启动多个节点组成分布式集群。另外,权限管理和生命周期策略也是企业级应用的关键,需要指导用户如何设置访问策略和自动删除旧文件。 数据完整性检查是MinIO的一个特性,可以自动进行,但用户可能需要知道如何验证或触发检查。最后,安全性方面,HTTPS配置和定期轮换密钥是必须提到的,确保数据传输安全。 然后,生成相关问题时要覆盖用户可能进一步想了解的内容,比如安装步骤、权限控制、分布式部署、兼容性、数据保护机制以及备份策略。这样可以帮助用户全面掌握MinIO使用和管理。 需要注意的是,回答中要正确引用提供的参考资料,比如引用[1]和[2]来支持MinIO的特点和存储桶的概念。同时,保持语言简洁明了,步骤清晰,方便用户按照指导操作。</think>### MinIO对象存储管理使用方法 #### 一、基础环境搭建 1. **安装部署** - Docker部署命令: ```bash docker run -d -p 9000:9000 -p 9090:9090 \ --name minio \ -v /mnt/data:/data \ minio/minio server /data --console-address ":9090" ``` 访问控制台:`http://服务器IP:9090`,默认账号`minioadmin/minioadmin`[^1] 2. **存储桶创建** - Web控制台操作:登录后点击"Create Bucket",输入唯一名称并选择存储策略(如SSE加密) - 命令行创建(使用mc工具): ```bash mc mb myminio/mybucket ``` #### 二、核心功能操作 1. **文件管理** - 网页端上传:进入Bucket后点击"Upload"按钮 - Python SDK示例: ```python from minio import Minio client = Minio("play.min.io:9000", access_key="Q3AM3UQ867SPQQA43P2F", secret_key="zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG") client.fput_object("mybucket", "object.jpg", "/tmp/photo.jpg") ``` 2. **访问控制** - 生成临时访问链接(有效期7天): ```python url = client.presigned_get_object("mybucket", "object.jpg", expires=timedelta(days=7)) ``` - 设置Bucket策略(读写权限控制)[^2] #### 三、高级配置 1. **分布式部署** ```bash export MINIO_ROOT_USER=admin export MINIO_ROOT_PASSWORD=password minio server http://node{1...4}.example.com/mnt/disk{1...4} ``` 该命令创建含4节点、每节点4磁盘的分布式集群 2. **数据完整性验证** ```bash mc admin heal -r myminio/mybucket ``` 自动校验并修复损坏数据 3. **监控集成** - 配置Prometheus监控: ```yaml - job_name: minio metrics_path: /minio/v2/metrics/cluster static_configs: - targets: ['minio-server:9000'] ``` #### 四、最佳实践建议 1. 为生产环境配置TLS证书 2. 定期轮换ACCESS_KEY/SECRET_KEY 3. 使用EC(纠删码)策略提高数据可靠性 4. 通过版本控制实现数据恢复保护
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值