要获取 Minio 上传文件的进度,可以使用 Minio Java SDK 提供的 'ProgressListener' 接口。在 Spring Boot 中,你可以使用以下代码来上传文件并监视进度:

import io.minio.MinioClient;
import io.minio.PutObjectArgs;
import io.minio.ProgressListener;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.springframework.stereotype.Service;

@Service
public class MinioService {

    private final MinioClient minioClient;

    public MinioService(MinioClient minioClient) {
        this.minioClient = minioClient;
    }

    public void uploadFile(File file, String bucketName, String objectName) throws IOException {
        PutObjectArgs args = PutObjectArgs.builder()
                .bucket(bucketName)
                .object(objectName)
                .stream(new FileInputStream(file), file.length(), -1)
                .build();

        ProgressListener progressListener = progress -> {
            float pct = progress.bytesTransferred() * 100f / progress.totalBytes();
            System.out.printf("Upload progress: %.2f%%\n", pct);
        };

        minioClient.putObject(args, progressListener);
    }

}

在上面的代码中,我们定义了一个 'ProgressListener' 接口的实现,它将打印上传进度。我们将这个监听器传递给 'putObject()' 方法,以便在上传文件时监视进度。

SpringBoot Minio 文件上传进度监控 - 8.2.1 版本实现

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

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