Spring Boot MinIO 文件上传进度监听实现

Spring Boot 集成 MinIO 实现文件上传时,可以通过 MinIO 提供的 ProgressListener 接口获取上传进度。ProgressListener 接口定义如下:

public interface ProgressListener {
    void progressChanged(ProgressEvent progressEvent);
}

其中,ProgressEvent 对象包含以下属性:

  • bytesTransferred:已经上传的字节数
  • eventCode:事件代码,表示上传进度的不同状态,如 TRANSFER_STARTED_EVENTREQUEST_BYTE_TRANSFER_EVENTRESPONSE_BYTE_TRANSFER_EVENTTRANSFER_COMPLETED_EVENT
  • eventType:事件类型,表示事件的类型,如 REQUEST_CONTENT_LENGTH_EVENTREQUEST_HEADERS_EVENTREQUEST_BODY_START_EVENTREQUEST_BODY_TRANSFER_EVENT

具体实现步骤如下:

  1. 创建 MinIOClient 对象
MinioClient minioClient = new MinioClient('http://localhost:9000', 'accessKey', 'secretKey');
  1. 设置 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());
    }
};
  1. 创建 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);
  1. 调用 putObject 方法上传文件
minioClient.putObject(putObjectArgs);

通过以上步骤,即可获取 MinIO 上传文件的进度。

Spring Boot MinIO 文件上传进度监听实现

原文地址: https://www.cveoy.top/t/topic/nm4r 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录