本地部署MinIO实现文件上传

1.添加依赖

(1)打开pom.xml文件,将的 MinIO依赖添加进去,并保存文件,示例代码为:

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

(2)右键单击文件编辑区域,选择Maven>>>Reload Project,或在右侧的Maven工具窗口中点击刷新按钮。

2.新建Maven项目

复制代码
 1 package org.example;
 2 
 3 import io.minio.MinioClient;
 4 import io.minio.errors.MinioException;
 5 import io.minio.BucketExistsArgs;
 6 import io.minio.MakeBucketArgs;
 7 import io.minio.PutObjectArgs;
 8 
 9 import java.io.FileInputStream;
10 import java.io.IOException;
11 import java.io.InputStream;
12 import java.security.InvalidKeyException;
13 import java.security.NoSuchAlgorithmException;
14 
15 public class MinioUploader {
16 
17     public static void main(String[] args) {
18         // MinIO 服务器信息
19         String endpoint = "http://localhost:9000";
20         String accessKey = "YOUR_ACCESS_KEY";
21         String secretKey = "YOUR_SECRET_KEY";
22         String bucketName = "YOUR_BUCKET_NAME";
23 
24         // 要上传的文件信息
25         String objectName = "example.jpg"; // 文件在 MinIO 中的对象键
26         String filePath = "path/to/your/file/example.jpg"; // 本地文件路径
27 
28         // 初始化 MinIO 客户端
29         try {
30             MinioClient minioClient = MinioClient.builder()
31                     .endpoint(endpoint)
32                     .credentials(accessKey, secretKey)
33                     .build();
34 
35             // 检查存储桶是否存在,不存在则创建
36             boolean isExist = minioClient.bucketExists(
37                     BucketExistsArgs.builder().bucket(bucketName).build());
38             if (!isExist) {
39                 minioClient.makeBucket(
40                         MakeBucketArgs.builder().bucket(bucketName).build());
41             }
42 
43             // 使用文件流上传文件
44             try (InputStream inputStream = new FileInputStream(filePath)) {
45                 minioClient.putObject(
46                         PutObjectArgs.builder()
47                                 .bucket(bucketName)
48                                 .object(objectName)
49                                 .stream(inputStream, inputStream.available(), -1)
50                                 .build());
51                 System.out.println("File uploaded successfully.");
52             } catch (IOException e) {
53                 e.printStackTrace();
54             }
55 
56         } catch (MinioException | NoSuchAlgorithmException | InvalidKeyException | IOException e) {
57             e.printStackTrace();
58         }
59     }
60 }
复制代码

3.上传结果

 注:本人使用的是minio-8.5.10-all.jar

 

posted @   小刘爱学习呀  阅读(346)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示