Java 上传文件到 Minio 并获取上传进度
以下是使用 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() 方法中,可以获取上传进度。上传进度信息包括已传输的字节数和总字节数。
原文地址: https://www.cveoy.top/t/topic/nm68 著作权归作者所有。请勿转载和采集!