首页 > 解决方案 > Amazon S3:使用 Java 开发工具包更改存储桶策略

问题描述

我正在使用 Java (Servlet) 中的“aws-java-sdk-s3”对兼容 Amazon S3 的 Minio 进行测试。

Minio 想将其设置为“Prefix: *, Read Only”,因为存储桶策略的初始值为 None。

我在创建bucket的时候添加了源代码我写的如下,但是并没有改变。

BasicAWSCredentials awsCreds = new BasicAWSCredentials(awsId, awsKey);
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
    .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
    .withEndpointConfiguration(new EndpointConfiguration(endpoint, null))
    .withPathStyleAccessEnabled(true)
    .build();

s3client.createBucket(new CreateBucketRequest(bucketName));
s3client.setBucketPolicy(bucketName,
    "{"
        + "\"Version\":\"2012-10-17\","
        + "\"Statement\":["
            + "{"
                + "\"Sid\":\"Statement1\","
                + "\"Effect\":\"Allow\","
                + "\"Principal\":\"*\","
                + "\"Action\":[\"s3:GetObject\"],"
                + "\"Resource\":[\"arn:aws:s3:::*\"]"
            + "}"
        + "]"
    + "}"
);

我错了什么?请告诉我。如果可以改变所有桶的桶策略初始值,比如Minio的环境设置,是没有问题的。

谢谢你。

标签: javaamazon-web-servicesservletsamazon-s3minio

解决方案


推荐阅读