Spring Boot MinIO 文件上传进度监听实现
Spring Boot 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/nm4r 著作权归作者所有。请勿转载和采集!