package com.sandu.common.file.config.minioConfig;
|
|
import com.google.gson.Gson;
|
import lombok.Data;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
@Data
|
public class MinIoPolicy {
|
|
private String Version;
|
|
private List<MinioPolicyStatement> Statement;
|
|
/**
|
* 生成 * 通行策略
|
* @return
|
*/
|
public static String generateMinioPolicy (String bucketName) {
|
MinIoPolicy policy = new MinIoPolicy();
|
policy.setVersion("2012-10-17");
|
|
List<MinioPolicyStatement> minioPolicyStatements = new ArrayList<>();
|
MinioPolicyStatement statement = new MinioPolicyStatement();
|
statement.setEffect("Allow");
|
|
MinioPolicyStatementPrincipal policyStatementPrincipal = new MinioPolicyStatementPrincipal();
|
List<String> aws = new ArrayList<>();
|
aws.add("*");
|
policyStatementPrincipal.setAWS(aws);
|
statement.setPrincipal(policyStatementPrincipal);
|
|
List<String> action = new ArrayList<>();
|
action.add("s3:GetBucketLocation");
|
action.add("s3:ListBucket");
|
statement.setAction(action);
|
|
List<String> resources = new ArrayList<>();
|
resources.add("arn:aws:s3:::"+bucketName);
|
statement.setResource(resources);
|
|
MinioPolicyStatement statement2 = new MinioPolicyStatement();
|
statement2.setEffect("Allow");
|
statement2.setPrincipal(policyStatementPrincipal);
|
|
action = new ArrayList<>();
|
action.add("s3:GetObject");
|
statement2.setAction(action);
|
|
resources = new ArrayList<>();
|
resources.add("arn:aws:s3:::"+bucketName+"/*");
|
statement2.setResource(resources);
|
|
minioPolicyStatements.add(statement);
|
minioPolicyStatements.add(statement2);
|
|
policy.setStatement(minioPolicyStatements);
|
|
return new Gson().toJson(policy);
|
}
|
|
}
|