Java Minio 上传文件进度获取示例
为了获取 Minio 上传文件的进度,可以使用'PutObjectProgressListener'接口。以下是一个示例代码:
package com.example.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.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import org.xmlpull.v1.XmlPullParserException;
public class MinioUploadProgressExample {
public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeyException, XmlPullParserException, MinioException {
String accessKey = 'ACCESS_KEY';
String secretKey = 'SECRET_KEY';
String endpoint = 'http://localhost:9000';
String bucketName = 'mybucket';
String objectName = 'myfile.txt';
File file = new File('/path/to/myfile.txt');
MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey);
// Create a listener for progress events
ProgressListener progressListener = new ProgressListener() {
@Override
public void progressChanged(ProgressEvent progressEvent) {
System.out.println('Uploaded ' + progressEvent.getBytesTransferred() + ' bytes out of ' + progressEvent.getTotalBytes());
}
};
// Upload the file with progress listener
PutObjectOptions options = new PutObjectOptions(file.length(), -1);
options.setProgressListener(progressListener);
minioClient.putObject(bucketName, objectName, new FileInputStream(file), options);
}
}
在这个例子中,我们首先创建了一个'MinioClient'实例,然后使用'ProgressListener'接口创建一个进度监听器。接下来,我们使用'PutObjectOptions'类创建一个'PutObject'请求选项,将进度监听器传递给它。最后,我们调用'putObject'方法并传递文件的输入流和选项对象。这将启动上传,并通过进度监听器报告上传进度。
原文地址: https://www.cveoy.top/t/topic/nm3Y 著作权归作者所有。请勿转载和采集!