• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

MinIo使用

武飞扬头像
很懒的十六
帮助1

对于项目的文件存储可以使用像阿里云、腾讯云这种平台的服务,当然也可以自己搭建一个文件管理系统。这里简单介绍一下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就简单的完成了,上传其他文件也是一样的,至于需不需要预览功能完全取决于你自己。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbaagf
系列文章
更多 icon
同类精品
更多 icon
继续加载