程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了AWS S3 Java SDK-拒绝访问大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决AWS S3 Java SDK-拒绝访问?

开发过程中遇到AWS S3 Java SDK-拒绝访问的问题如何解决?下面主要结合日常开发的经验,给出你关于AWS S3 Java SDK-拒绝访问的解决方法建议,希望对你解决AWS S3 Java SDK-拒绝访问有所启发或帮助;

现在问题已解决。代码存在以下问题:

  1. 终点不正确,应该有一个正确的终点。
  2. 没有足够的权限授予该存储桶。在AWS开发工具包中使用存储桶之前,应获取完整权限列表。

下面是正确的代码

AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
ClIEntConfiguration clIEntConfig = new ClIEntConfiguration();
clIEntConfig.setProtocol(Protocol.http);
AmazonS3 conn = new AmazonS3ClIEnt(credentials, clIEntConfig);
conn.setEndpoint("correct end point");
Bucket bucket = conn.createBucket(bucketName);
ObjectLisTing objects = conn.ListObjects(bucket.getname());
do {
    for (S3ObjectSumMary objectSumMary : objects.getobjectSummarIEs()) {
            System.out.println(objectSumMary.getKey() + "\t" +
                    objectSumMary.getSize() + "\t" +
                    StringUtils.fromDate(objectSumMary.getLastModifIEd()));
    }
    objects = conn.ListNextBatchOfObjects(objects);
} while (objects.isTruncated());

解决方法

我正在尝试使用AWS开发工具包访问存储桶及其所有对象,但是在运行代码时,出现错误,线程“ main”中出现异常
com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (service: Amazon S3; Status Code: 403; Error Code: AccessDenied; request ID: X),S3 Extended request ID: Y=

请提出建议,尽管我已经对存储桶采取了以下所有许可,但我缺少的地方以及为什么发生拒绝访问错误:

s3:GetObject
s3:GetObjectVersion
s3:GetObjectAcl
s3:GetBucketAcl
s3:GetBucketCORS
s3:GetBucketLOCATIOn
s3:GetBucketLogging
s3:ListBucket
s3:ListBucketVersions
s3:ListBucketMultipartUploads
s3:GetObjectTorrent
s3:GetObjectVersionAcl

代码如下:

AWSCredentials credentials = new BasicAWSCredentials(accessKey,secretKey);
ClientConfiguration clientConfig = new ClientConfiguration();
clientConfig.setProtocol(Protocol.http);
AmazonS3 conn = new AmazonS3Client(credentials,clientConfig);
conn.setEndpoint(bucketName);
Bucket bucket = conn.createBucket(bucketName);
ObjectLisTing objects = conn.listObjects(bucket.getName());
do {
    for (S3ObjectSumMary objectSumMary : objects.getObjectSummaries()) {
            System.out.println(objectSumMary.getKey() + "\t" +
                    objectSumMary.getSize() + "\t" +
                    StringUtils.fromDate(objectSumMary.getLastModified()));
    }
    objects = conn.listNextBatchOfObjects(objects);
} while (objects.isTruncated());

大佬总结

以上是大佬教程为你收集整理的AWS S3 Java SDK-拒绝访问全部内容,希望文章能够帮你解决AWS S3 Java SDK-拒绝访问所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。