java minio 在bucket下建子目录
时间: 2024-09-13 10:12:57 浏览: 183
Java MinIO 是一个用于操作 MinIO 对象存储服务的客户端库,它可以帮助你在 Java 程序中实现与 MinIO 服务器的交互。在 MinIO 的存储桶(bucket)下创建子目录,可以通过 Java MinIO 客户端的 API 来完成。
以下是一个简单的示例代码,展示了如何在 MinIO 的存储桶下创建子目录:
```java
import io.minio.MinioClient;
import io.minio.MakeBucketOptions;
import io.minio.messages.Bucket;
import io.minio.errors.MinioException;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
public class MinioBucketSubdirectoryExample {
public static void main(String[] args) {
try {
// 创建 MinIO 客户端对象。
MinioClient minioClient = MinioClient.builder()
.endpoint("http://localhost:9000") // MinIO服务的地址
.credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG") // 访问和秘密密钥
.build();
// 创建存储桶,如果存储桶已存在,将抛出异常。
// 你可以通过 MakeBucketOptions 来指定创建存储桶的区域和地区等参数。
String bucketName = "my-bucket";
boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
if (!found) {
minioClient.makeBucket(MakeBucketOptions.builder().bucket(bucketName).build());
System.out.println("存储桶 " + bucketName + " 创建成功!");
} else {
System.out.println("存储桶 " + bucketName + " 已存在!");
}
// 创建子目录(在 MinIO 中,子目录是通过前缀来模拟的)
String subdirectory = "subdir";
String objectName = bucketName + "/" + subdirectory + "/";
minioClient.putObject(PutObjectArgs.builder()
.bucket(bucketName)
.object(objectName)
.stream(null, -1, PutObjectArgs.MIN_MULTIPART_SIZE)
.build());
System.out.println("子目录 " + subdirectory + " 创建成功!");
} catch (MinioException | NoSuchAlgorithmException | InvalidKeyException | IOException e) {
System.out.println("发生错误: " + e.getMessage());
}
}
}
```
请注意,存储桶(bucket)在 MinIO 中本质上是一个全局唯一的命名空间,你可以通过对象的前缀来模拟子目录结构。上面代码中创建的 `subdir` 实际上是在存储桶中创建了一个名为 `my-bucket/subdir/` 的路径,MinIO 会将这个路径视为一个子目录。
阅读全文