本地部署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
本文来自博客园,作者:小刘爱学习呀,转载请注明原文链接:https://www.cnblogs.com/liuhao-blog/p/18204853