Minio 对每个存储桶都有策略。其中包含:
- 只读
- 只写
- 读+写
- 没有任何
这些与对文件夹的匿名/授权访问有何关系?
就像说我想让一堆文件以只读方式提供给没有凭据(访问密钥和密钥)的用户。我该怎么做?
Minio 客户端提供的存储桶策略是 AWS S3 提供的相同存储桶策略的抽象版本。
客户端根据桶和前缀的输入字符串构造一个策略 JSON。
一堆文件应该驻留在特定前缀下,可用于只读访问。假设您的前缀是“我的前缀/只读/下载”,那么如果您正在使用
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”中的所有对象都是公开可读的,即没有访问/密钥。
“公共”是有效的政策......
您可以更改此策略:安装 mc(minio 客户端),然后:
# 安装后列出默认主机: mc 配置主机 ls # 删除所有主机: mc config host rm {hostName} mc 配置主机 rm 本地 # 添加你的主机: mc config host add {hostName} {url} {apiKey} {apiSecret} mc config 主机添加本地 http://127.0.0.1:9000 ClientIdASSDD ClientSecretASASASdsasdasdasdasd # 创建存储桶:mc mb {host}/{bucket} mc mb 本地/mybucket # 更改存储桶策略:mc policy set {policy} {host}/{bucket} mc 策略设置公共本地/mybucket