Springboot获取minio上传文件进度
Spring Boot集成MinIO以实现文件上传时,可以通过MinIO提供的ProgressListener接口获取上传进度。ProgressListener接口定义如下:
public interface ProgressListener {
void progressChanged(ProgressEvent progressEvent);
}
其中,ProgressEvent对象包含以下属性:
- bytesTransferred:已经上传的字节数
- eventCode:事件代码,表示上传进度的不同状态,如TRANSFER_STARTED_EVENT、REQUEST_BYTE_TRANSFER_EVENT、RESPONSE_BYTE_TRANSFER_EVENT、TRANSFER_COMPLETED_EVENT等
- eventType:事件类型,表示事件的类型,如REQUEST_CONTENT_LENGTH_EVENT、REQUEST_HEADERS_EVENT、REQUEST_BODY_START_EVENT、REQUEST_BODY_TRANSFER_EVENT等
具体实现步骤如下:
- 创建MinIOClient对象
MinioClient minioClient = new MinioClient("http://localhost:9000", "accessKey", "secretKey");
- 设置ProgressListener对象
ProgressListener progressListener = new ProgressListener() {
public void progressChanged(ProgressEvent progressEvent) {
System.out.println("Event Code: " + progressEvent.eventCode());
System.out.println("Event Type: " + progressEvent.eventType());
System.out.println("Bytes Transferred: " + progressEvent.bytesTransferred());
}
};
- 创建PutObjectArgs对象,并设置ProgressListener
PutObjectArgs putObjectArgs = PutObjectArgs.builder()
.bucket("mybucket")
.object("myobject")
.stream(new FileInputStream(new File("path/to/file")))
.contentType("application/octet-stream")
.build();
putObjectArgs.setProgressListener(progressListener);
- 调用putObject方法上传文件
minioClient.putObject(putObjectArgs);
通过以上步骤,即可获取MinIO上传文件的进度。
原文地址: https://www.cveoy.top/t/topic/b2QS 著作权归作者所有。请勿转载和采集!