java minioclient 上传附件 PutObjectArgs

发布时间:2024年01月20日

在Java中使用MinIO的minio-java SDK上传文件(附件)时,你可以使用PutObjectArgs类来构建上传参数。以下是一个示例代码片段,展示如何从本地文件系统上传一个文件到MinIO bucket:

import io.minio.MinioClient;
import io.minio.errors.MinioException;
import java.io.InputStream;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

public class MinioUploadFile {

    public static void main(String[] args)
            throws NoSuchAlgorithmException, IOException, InvalidKeyException, MinioException {

        // 创建一个MinioClient对象
        MinioClient minioClient = new MinioClient("http://your-minio-server:9000", "accessKey", "secretKey");

        // 设置bucket名称和要上传的文件路径以及目标object名称
        String bucketName = "mybucket";
        String filePath = "/path/to/your/local/file.txt";  // 替换为你的本地文件路径
        String objectName = "remoteObjectName.txt";  // 替换为在MinIO中存储的对象名

        try (InputStream fileStream = new FileInputStream(filePath)) {
            // 构建PutObjectArgs实例
            PutObjectArgs putObjectArgs = PutObjectArgs.builder()
                    .bucket(bucketName)
                    .object(objectName)
                    .stream(fileStream, fileStream.available(), -1) // 使用文件流、文件大小和部分上传标志
                    .contentType("text/plain")  // 根据实际情况设置内容类型
                    .build();

            // 上传文件到MinIO
            minioClient.putObject(putObjectArgs);
            System.out.println("Successfully uploaded `" + objectName + "` to bucket `" + bucketName + "`");
        } catch (FileNotFoundException e) {
            System.err.println("File not found: " + filePath);
        }
    }
}

请确保替换上述代码中的URL、accessKeysecretKeyfilePathremoteObjectName.txt为你实际的服务器地址、凭证信息、本地文件路径和期望在MinIO中存储的文件对象名称。此外,contentType应该根据上传文件的实际MIME类型进行设置。

文章来源:https://blog.csdn.net/iteye_10392/article/details/135652459
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。