Minio:存储桶策略与匿名/授权访问有何关系?



minio对每个存储桶都有策略。其中包含:

  • Readonly
  • 写入
  • 阅读 写

这些与对文件夹的匿名/授权访问有何关系?
就像说我想在没有凭据(访问密钥和秘密密钥)的情况下向用户读取一堆文件。我该怎么做?

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

客户端基于存储桶和前缀的输入字符串构建策略JSON。

  • 可读取的含义 - 允许匿名下载访问包括能够在所需的前缀上列出对象
  • 写入表示 - 允许匿名上传包括能够要列出所需前缀上的不完整上传
  • 阅读 - 写入 - 匿名访问上传并下载所有对象。这也意味着完整的公共访问。
  • 无 - 是默认(没有策略),这意味着所有操作都需要为对所需的桶和前缀进行认证。

可以在特定前缀下驻留一堆文件,仅可用于仅阅读访问。假设您的前缀是" my-prefix/norly/plostally/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-forly/downloads"中的所有对象都是公开读取的,即无访问/秘密键。

'public'是有效的策略...

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

#列表默认主机安装后:MC配置主机LS#删除所有主机:MC配置主机RM {hostName}MC配置主机RM本地#添加您的主机:mc config主机添加{hostName} {url} {apikey} {apisecret}MC配置主机添加本地http://127.0.0.0.1:9000 clientidassdsd client#创建存储桶:MC MB {主机}/{bucket}MC MB本地/mybucket#更改存储措施策略:MC策略集{策略} {host}/{bucket}MC政策设置了本地/mybucket

最新更新