0

我是 AWS 新手。现在我想编写一个 java 代码来使用 CloudFront 来访问一个 s3。

我创建了一个 S3 存储桶。但我不知道如何使用 S3 凭据获取云端对象。

我看了AWS JAVA API,看来代码应该是这样的形式:

AmazonCloudFrontClient cloudfront = new AmazonCloudFrontClient(credentials);
CreateCloudFrontOriginAccessIdentityRequest originRequest = new CreateCloudFrontOriginAccessIdentityRequest();
originRequest.setRequestCredentials(credentials);

cloudfront.createCloudFrontOriginAccessIdentity(originRequest);

但我没有看到 S3ID 或将 S3 设置为云端的东西。

4

1 回答 1

1

如果您想使用 CloudFront 提供您的 S3 文件,这通常意味着您希望 S3 存储桶公开可用。您可以通过 S3 接口(Web 控制台、API 或CloudBerryBucket Explorer等第三方工具)简单地将您的对象和存储桶定义为公共的。

您也可以使用 Java SDK 进行设置

Statement allowPublicReadStatement = new Statement(Effect.Allow)
         .withPrincipals(Principal.AllUsers)
         .withActions(S3Actions.GetObject)
         .withResources(new S3ObjectResource(myBucketName, "*"));

Policy policy = new Policy()
         .withStatements(allowPublicReadStatement);

AmazonS3 s3 = new AmazonS3Client(myAwsCredentials);
s3.setBucketPolicy(myBucketName, policy.toJson());

如果您想提供私有文件​​,可以在此处查看文档:http: //docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html

于 2013-03-30T15:47:22.353 回答