为了获取 Minio 上传文件的进度,可以使用'PutObjectProgressListener'接口。以下是一个示例代码:

package com.example.minio;

import io.minio.MinioClient;
import io.minio.PutObjectOptions;
import io.minio.errors.MinioException;
import io.minio.progress.ProgressEvent;
import io.minio.progress.ProgressListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import org.xmlpull.v1.XmlPullParserException;

public class MinioUploadProgressExample {

  public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeyException, XmlPullParserException, MinioException {
    String accessKey = 'ACCESS_KEY';
    String secretKey = 'SECRET_KEY';
    String endpoint = 'http://localhost:9000';
    String bucketName = 'mybucket';
    String objectName = 'myfile.txt';
    File file = new File('/path/to/myfile.txt');

    MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey);

    // Create a listener for progress events
    ProgressListener progressListener = new ProgressListener() {
      @Override
      public void progressChanged(ProgressEvent progressEvent) {
        System.out.println('Uploaded ' + progressEvent.getBytesTransferred() + ' bytes out of ' + progressEvent.getTotalBytes());
      }
    };

    // Upload the file with progress listener
    PutObjectOptions options = new PutObjectOptions(file.length(), -1);
    options.setProgressListener(progressListener);
    minioClient.putObject(bucketName, objectName, new FileInputStream(file), options);
  }
}

在这个例子中,我们首先创建了一个'MinioClient'实例,然后使用'ProgressListener'接口创建一个进度监听器。接下来,我们使用'PutObjectOptions'类创建一个'PutObject'请求选项,将进度监听器传递给它。最后,我们调用'putObject'方法并传递文件的输入流和选项对象。这将启动上传,并通过进度监听器报告上传进度。

Java Minio 上传文件进度获取示例

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

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