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 Statement; /** * 生成 * 通行策略 * @return */ public static String generateMinioPolicy (String bucketName) { MinIoPolicy policy = new MinIoPolicy(); policy.setVersion("2012-10-17"); List minioPolicyStatements = new ArrayList<>(); MinioPolicyStatement statement = new MinioPolicyStatement(); statement.setEffect("Allow"); MinioPolicyStatementPrincipal policyStatementPrincipal = new MinioPolicyStatementPrincipal(); List aws = new ArrayList<>(); aws.add("*"); policyStatementPrincipal.setAWS(aws); statement.setPrincipal(policyStatementPrincipal); List action = new ArrayList<>(); action.add("s3:GetBucketLocation"); action.add("s3:ListBucket"); statement.setAction(action); List 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); } }