首页 文章

Minio:与匿名/授权访问相关的存储桶策略如何?

提问于
浏览
7

Minio的政策适用于each bucket . 其中包含:

  • ReadOnly

  • WriteOnly

  • 读写

  • 没有

这些与匿名/授权访问文件夹有何关联?
比如说我希望将一堆文件作为只读文件提供给没有凭据的用户(访问密钥和密钥) . 我该怎么做?

2 回答

  • 2

    Minio客户端提供的存储桶策略是AWS S3提供的相同存储桶策略的抽象版本 .

    客户端根据存储桶和前缀的输入字符串构造策略JSON .

    • ReadOnly意味着 - 允许匿名下载访问包括能够列出所需前缀的对象

    • WriteOnly表示 - 允许匿名上传包括能够列出所需前缀的不完整上传

    • 读写 - 匿名访问以上载和下载所有对象 . 这也意味着完全公开访问 .

    • 无 - 是默认值(无策略),这意味着所有操作都需要针对所需的存储桶和前缀进行身份验证 .

    应该驻留在特定前缀下的一堆文件可用于只读访问 . 让我们说如果你使用的话,你的前缀是'my-prefix / read-only / downloads'

    import java.io.IOException;
    import java.security.NoSuchAlgorithmException;
    import java.security.InvalidKeyException;
    
    import org.xmlpull.v1.XmlPullParserException;
    
    import io.minio.MinioClient;
    import io.minio.policy.PolicyType;
    import io.minio.errors.MinioException;
    
    public class SetBucketPolicy {
      /**
       * MinioClient.setBucketPolicy() example.
       */
      public static void main(String[] args)
        throws IOException, NoSuchAlgorithmException, InvalidKeyException, XmlPullParserException {
        try {
          /* play.minio.io for test and development. */
          MinioClient minioClient = new MinioClient("https://play.minio.io:9000", "Q3AM3UQ867SPQQA43P2F",
                                                    "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG");
    
          /* Amazon S3: */
          // MinioClient minioClient = new MinioClient("https://s3.amazonaws.com", "YOUR-ACCESSKEYID",
          //                                           "YOUR-SECRETACCESSKEY");
    
          minioClient.setBucketPolicy("my-bucketname", "my-prefix/read-only/downloads", PolicyType.READ_ONLY);
        } catch (MinioException e) {
          System.out.println("Error occurred: " + e);
        }
      }
    }
    

    一旦您的呼叫成功,“my-prefix / read-only / downloads”内的所有对象都是公开可读的,即没有访问/密钥 .

  • 9

    '公共'是有效的政策......

    您可以更改此策略:安装mc(minio客户端),然后:

    # list default hosts after install: 
    mc config host ls
    
    # remove all hosts: mc config host rm {hostName}
    mc config host rm local
    
    # add your host: mc config host add {hostName} {url} {apiKey} {apiSecret}
    mc config host add local http://127.0.0.1:9000 ClientIdASSDSD ClientSecretASASASdsasdasdasdasd
    
    # create bucket: mc mb {host}/{bucket}
    mc mb local/mybucket
    
    # change bucket policy: mc policy {policy} {host}/{bucket}
    mc policy public local/mybucket
    

相关问题