java使用minio上传文件

硅谷探秘者 minio 253 0 0

创建buckets

创建service accounts

java上传文件

maven依赖:

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

java代码:

package org.example.controller;

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 java.util.UUID;

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://ip:9000";
            //你的accessKey
            String accessKey = "Ftl430el5M7IMKyp";
            //你的sercetKey
            String secretKey = "ek1IHUaH1o3EeIlcO5NwN9RLAlomvCCn";
            //你的bucket
            String bucketName = "test";
            // 使用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("D:\\data\\hei.png");
            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);
        }
    }
}

预览文件:

修改Buckets权限

浏览器访问:http://ip:9000/test/2022/08/08/9a6c36file01.png

猜你喜欢
工具 1818 pom依赖dependencygroupIdcommons-net/groupIdartifactIdcommons-net/artifactIdversion3.6/version/dependencyFTP服务类packageclub.jiajiajia.bulider.service;importjava.io.IOException;importjava.io.InputStream;im
工具 1187 服务端(接受) /** *接口 *@paramtype *@return */ @RequestMapping(value="/upFile",method
minio 177 rclone下载地址:https://rclone.org/downloads/ 解压包: unziprclone-v1.59.0-linux-amd64.zip cdcdrclone
前端(h5) 1720 后端这么写packagecn.com.dzqc.controller;importjavax.servlet.http.HttpServletRequest;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.sp
框架 1487 springboot与回显资源映射路径配置:packagecom.dzqc.yx.controller
minio,linux 159 / 使wget下载minio的安装包wgethttps://dl.minio.io/server/minio/release/linux-amd64/minio 下载完成后赋予minio的执行权
weblog 1650 java使easypoi导出并下载excel简单导出测试如图:一、pomdependencygroupIdcn.afterturn/groupIdartifactIdeasypoi
框架 5871 一次实现的进度条原理:在之前,请求以下服务器,获取一个socketId(作来标识本次连接,服务器端也是通过这个id找到对应的连接,然后给这个连接发送消息(进度)),此时socket
归档
2018年11月  12 2018年12月  33 2019年01月  28 2019年02月  28 2019年03月  32 2019年04月  27 2019年05月  33 2019年06月  6 2019年07月  12 2019年08月  12 2019年09月  21 2019年10月  8 2019年11月  15 2019年12月  25 2020年01月  9 2020年02月  5 2020年03月  16 2020年04月  4 2020年06月  1 2020年07月  7 2020年08月  13 2020年09月  9 2020年10月  5 2020年12月  3 2021年01月  1 2021年02月  5 2021年03月  7 2021年04月  4 2021年05月  4 2021年06月  1 2021年07月  7 2021年08月  2 2021年09月  8 2021年10月  9 2021年11月  16 2021年12月  14 2022年01月  7 2022年05月  1 2022年08月  3 2022年09月  2
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础
目录
余生别太较劲,放过自己 才会幸福。