歡迎來到DIVCSS5查找CSS資料與學習DIV CSS布局技術!
一、web端設置桶策略
 
桶的創建者擁有管理桶的權限,其他未授權用戶不可管理桶
 
桶默認可以有三種Access Policy策略:
 
public、custom、private
 
1.1、public
 
設置桶權限為public
 
不經過任何認證可以直接訪問資源
 
1.2、custom
 
這種Access Policy策略是通過如下自定義Access Rules出現的
 
1.1.1、readonly
 
可以設置資源不經過授權,只能讀取
 
1.1.2、writeonly
 
資源不經過授權,只能寫入
 
1.1.3、readwrite
 
資源不經過授權,可讀可寫
 
1.3、private
 
桶設置為private后,未經授權不能進行任何操作,所有Access Rules失效
 
二、java程序設置桶策略
 
2.1、API設置桶策略
 
setBucketPolicy
 
策略json可在web端查看與編寫
 
/**
 
     * 設置桶策略
 
     * @param builder 策略json
 
     * @param bucketName 桶名稱
 
     */
 
    @SneakyThrows(Exception.class)
 
    public static void createBucketPolicy(StringBuilder builder, String bucketName) {
 
        if(builder.length()==0) builder=defaultBucketPolicy(bucketName);
 
        minioClient.setBucketPolicy(SetBucketPolicyArgs.builder()。bucket(bucketName)。config(builder.toString())。build());
 
    }
 
    /**
 
     * 獲取默認桶策略
 
     * @param bucketName
 
     * @return
 
     */
 
    private static StringBuilder defaultBucketPolicy(String bucketName){
 
        StringBuilder builder=new StringBuilder();
 
        builder.append("{\n" +
 
                "  \"Version\": \"2012-10-17\",\n" +
 
                "  \"Statement\": [\n" +
 
                "    {\n" +
 
                "      \"Effect\": \"Allow\",\n" +
 
                "      \"Action\": [\n" +
 
                "                \"s3:ListAllMyBuckets\",\n" +
 
                "                \"s3:ListBucket\",\n" +
 
                "                \"s3:GetBucketLocation\",\n" +
 
                "                \"s3:GetObject\",\n" +
 
                "                \"s3:PutObject\",\n" +
 
                "                \"s3:DeleteObject\"\n" +
 
                "      ],\n" +
 
                "      \"Principal\":\"*\",\n" +
 
                "      \"Resource\": [\n" +
 
                "        \"arn:aws:s3:::"+bucketName+"/*\"\n" +
 
                "      ]\n" +
 
                "    }\n" +
 
                "  ]\n" +
 
                "}");
 
        return builder;
 
    }
 
2.2、API查看桶策略
 
    /**
 
     * 查看桶策略
 
     * @param bucketName
 
     * @return
 
     */
 
    @SneakyThrows(Exception.class)
 
    public static String queryBucketPolicy(String bucketName) {
 
        String bucketPolicy = minioClient.getBucketPolicy(GetBucketPolicyArgs.builder()。bucket(bucketName)。build());
 
        logger.info(bucketPolicy);
 
        return bucketPolicy;
 
    }

如需轉載,請注明文章出處和來源網址:http://www.rs2pl.com/html/h65258.shtml

久久天天躁狠狠躁夜夜躁2020