以下是使用Java上传文件到Minio并获取上传进度的示例代码:

import io.minio.MinioClient;
import io.minio.PutObjectOptions;
import io.minio.errors.MinioException;
import io.minio.progress.ProgressEvent;
import io.minio.progress.ProgressListener;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class MinioUploader {

    public static void main(String[] args) {
        String endpoint = "http://localhost:9000"; // Minio服务的URL
        String accessKey = "accessKey"; // Minio的accessKey
        String secretKey = "secretKey"; // Minio的secretKey
        String bucketName = "test"; // 存储桶名称
        String objectName = "test.txt"; // 对象名称
        File file = new File("test.txt"); // 上传的文件

        try {
            // 创建Minio客户端
            MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey);

            // 检查存储桶是否存在,如果不存在则创建存储桶
            boolean isExist = minioClient.bucketExists(bucketName);
            if (!isExist) {
                minioClient.makeBucket(bucketName);
            }

            // 上传文件,并获取上传进度
            PutObjectOptions options = new PutObjectOptions(file.length(), -1);
            InputStream inputStream = new FileInputStream(file);
            ProgressListener progressListener = new ProgressListener() {
                @Override
                public void progressChanged(ProgressEvent progressEvent) {
                    System.out.println("上传进度:" + progressEvent.bytesTransferred() + "/" + progressEvent.totalBytes());
                }
            };
            options.setProgressListener(progressListener);
            minioClient.putObject(bucketName, objectName, inputStream, options);
            System.out.println("文件上传成功!");
        } catch (MinioException | IOException e) {
            System.out.println("Error occurred: " + e);
        }
    }
}

在上传文件时,可以通过PutObjectOptions类的setProgressListener()方法设置上传进度监听器。在监听器的progressChanged()方法中,可以获取上传进度。上传进度信息包括已传输的字节数和总字节数。

java上传文件到minio并获取上传进度

原文地址: https://www.cveoy.top/t/topic/b2Um 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录