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等

具体实现步骤如下:

  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上传文件的进度。

Springboot获取minio上传文件进度

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

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