我是AWS的新手。现在我想写一个java代码来使用CloudFront来访问s3。
我创建了一个S3存储桶。但我不知道如何使用S3凭证获取cloudfront对象。
我阅读了AWS JAVA API,似乎代码应采用以下形式:
AmazonCloudFrontClient cloudfront = new AmazonCloudFrontClient(credentials);
CreateCloudFrontOriginAccessIdentityRequest originRequest = new CreateCloudFrontOriginAccessIdentityRequest();
originRequest.setRequestCredentials(credentials);
cloudfront.createCloudFrontOriginAccessIdentity(originRequest);
但我没有看到S3ID或其他东西将S3设置为云端。
答案 0 :(得分:1)
如果您想使用CloudFront提供S3文件,通常意味着您希望S3存储桶可公开使用。您可以通过S3接口(Web控制台,API或第三方工具CloudBerry或Bucket 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());
如果您要提供私人文件,可以在此处查看文档:{{3}}