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/b2Um 著作权归作者所有。请勿转载和采集!