Spring Boot(25)集成minio图片服务器
安装
集成
- 依赖:minio
- 配置Bean:MinioClient
- 初始化:初始化bucket并设置policy
- 上传操作
要点:policy
实现:resources下新增BucketPolicy.json文件,初始化时读取json文件进行设置policy(代码里封装json比较麻烦),并替换bucketName
{
"Statement": [
{
"Action": [
"s3:GetBucketLocation"
],
"Effect": "Allow",
"Principal": "*",
"Resource": "arn:aws:s3:::#bucketName"
},
{
"Action": "s3:GetObject",
"Effect": "Allow",
"Principal": "*",
"Resource": "arn:aws:s3:::#bucketName/*"
}
],
"Version": "2012-10-17"
}
private void setBucketPolicy(String bucketName) throws Exception {
final File file = ResourceUtils.getFile("classpath:BucketPolicy.json");
String config = org.apache.commons.io.FileUtils.readFileToString(file, Charset.defaultCharset());
// 替换#{bucketName}为bucketName
config = config.replaceAll("#bucketName", bucketName);
System.out.println(config);
final SetBucketPolicyArgs setBucketPolicyArgs = SetBucketPolicyArgs.builder()
.bucket(bucketName)
.config(config)
.build();
minioClient.setBucketPolicy(setBucketPolicyArgs);
}