首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用InvalidBucketName接入点的JavaAWSSDK1.x

使用InvalidBucketName接入点的JavaAWSSDK1.x
EN

Stack Overflow用户
提问于 2022-11-29 11:47:24
回答 1查看 35关注 0票数 0

我试图通过AWSSDKVersion1.x( 1.12.348和1.11.1004)通过配置的GetObject在桶上执行accesspoint操作:

代码语言:javascript
复制
<dependency>
  <groupId>com.amazonaws</groupId>
  <artifactId>aws-java-sdk-s3</artifactId>
  <version>1.12.348</version>
</dependency>

我有以下代码来执行GetObject操作:

代码语言:javascript
复制
AmazonS3 amazonS3 = AmazonS3ClientBuilder.standard().withRegion(awsRegion).build();

String bucketName= "arn:aws:s3:<bucket-region>:<accountNumber>:accesspoint:<access-point-name>";
String key = "bucket/path/filename.txt";
File to = // a file;

amazonS3.getObject(new GetObjectRequest(bucketName, key), to);

根据文档,bucketName可以是:

桶的名称,或访问点ARN,包含所需的对象。

然后..。

在使用通过Amazon的访问点使用此操作时,将提供接入点ARN代替桶名。有关访问点ARN的详细信息,请参阅指南中的“使用访问点”。

https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html

但是,这会引发一个错误:

代码语言:javascript
复制
<Error><Code>InvalidBucketName</Code><Message>The specified bucket is not valid.</Message><BucketName>arn:aws:s3:<bucket-region>:<accountNumber>:accesspoint:<access-point-name></BucketName><RequestId>**********</RequestId><HostId>*******************</HostId></Error>

如果出现错误,它似乎不支持ARN格式化的桶名,并且抱怨ARN accesspoint名称中的特殊字符。

PS:在accesspoint值arn:aws:s3:<bucket-region>:<accountNumber>:accesspoint:<access-point-name>中,实际值在<>之间用占位符替换,因此错误将与这些字符无关。这里提供了用于数据保护的占位符。

EN

回答 1

Stack Overflow用户

发布于 2022-11-30 16:43:29

pom.xml还有另一个传递依赖项com.amazonaws:aws-java-sdk-bundle:jar:1.11.375:compile,它来自于以下依赖项:

代码语言:javascript
复制
<dependency>
  <groupId>org.apache.hadoop</groupId>
  <artifactId>hadoop-aws</artifactId>
  <version>${hadoop.version}</version>
</dependency>

aws-java-sdk-bundle重写了原始aws-java-sdk-s3中的大多数类。

hadoop-awsaws-java-sdk-s3交换立场解决了这个问题!(在aws-java-sdk-s3之前推送依赖项hadoop-aws)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74613615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档