package org.ailun;
import io.minio.*;
import io.minio.messages.*;
import java.util.List;
public class Test {
private static String bucketName = "bucketName";
public static void main(String[] args) {
MinioClient client = getMinioClient("http://192.168.100.147:9000", "admin", "QdJv2iojuW@jtzl");
createBucket(client, bucketName);
setBucketLifecycleRules(client, bucketName, 30);
}
private static void setBucketLifecycleRules(MinioClient client, String bucketName, Integer days) {
AbortIncompleteMultipartUpload abortIncompleteMultipartUpload = null;
Expiration expiration = new Expiration((ResponseDate) null, days, (Boolean) null);
RuleFilter ruleFilter = new RuleFilter("");
String id = null;
NoncurrentVersionExpiration noncurrentVersionExpiration = null;
NoncurrentVersionTransition noncurrentVersionTransition = null;
Transition transition = null;
LifecycleRule lifecycleRule = new LifecycleRule(Status.ENABLED, abortIncompleteMultipartUpload, expiration, ruleFilter, id, noncurrentVersionExpiration, noncurrentVersionTransition, transition);
LifecycleConfiguration lifecycleConfiguration = new LifecycleConfiguration(List.of(lifecycleRule));
SetBucketLifecycleArgs args = SetBucketLifecycleArgs
.builder()
.bucket(bucketName)
.config(lifecycleConfiguration)
.build();
try {
client.setBucketLifecycle(args);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static void createBucket(MinioClient client, String bucketName) {
final String template = "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"*\"]}," +
"\"Action\":[\"s3:GetBucketLocation\",\"s3:ListBucket\",\"s3:ListBucketMultipartUploads\"],\"Resource\":[\"arn:aws:s3:::" + bucketName + "\"]}," +
"{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"*\"]},\"Action\":[\"s3:PutObject\",\"s3:AbortMultipartUpload\",\"s3:DeleteObject\",\"s3:GetObject\"," +
"\"s3:ListMultipartUploadParts\"],\"Resource\":[\"arn:aws:s3:::" + bucketName + "/*\"]}]}";
try {
boolean exists = client.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
if (!exists) {
client.makeBucket(MakeBucketArgs.builder().objectLock(false).bucket(bucketName).build());
client.setBucketPolicy(SetBucketPolicyArgs.builder().bucket(bucketName).config(template).build());
client.getBucketPolicy(GetBucketPolicyArgs.builder().bucket(bucketName).build());
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static MinioClient getMinioClient(String minioServerAddr, String ak, String sk) {
return MinioClient
.builder()
.endpoint(minioServerAddr)
.credentials(ak, sk)
.build();
}
}
· 分享4款.NET开源、免费、实用的商城系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2022-09-25 CentOS7 程序开机自启
2022-09-25 dockerfile中变量引用
2022-09-25 Docker网络和容器的通信
2022-09-25 环境变量配置模板