尝试读取具有ap-east-1区域的存储桶中的数据时出现错误400

时间:2019-08-27 21:44:41

标签: scala amazon-web-services apache-spark hadoop amazon-s3

我有一堆代码,用于从S3存储桶读取数据/向S3存储桶写入数据。

在新的AWS区域(最初部署在eu-west-1上,然后在ap-east-1区域上进行新的复制)上复制此代码之后。我遇到以下错误:

com.amazonaws.services.s3.model.AmazonS3Exception: Status Code: 400, AWS Service: Amazon S3, AWS Request ID: SOMEID, AWS Error Code: null, AWS Error Message: Bad Request, S3 Extended Request ID: SOMEREQUESTID

调查后,从S3AFileSystem.java的以下行引发了错误

if (!s3.doesBucketExist(bucket)) {

在这里,对存储桶执行HEAD操作。 经过调查,似乎端点始终为https://react.semantic-ui.com/views/card/#content-content-block,并且应在https://s3.amazonaws.com上触发头请求(当fs.s3a.path.style.access为{{1}时) })

使用false环境变量指定区域不会修改该行为。

最新信息,这是我在build.sbt中定义的依赖项

AWS_DEFAULT_REGION

不用说,只要我指向eu-west-1配置中的存储桶,代码就可以工作。 我该怎么做(在我的代码或我的存储桶配置上)以允许我的代码加载文件。

记录下来,代码是

libraryDependencies += "org.apache.spark" %% "spark-core" % "2.2.0"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.2.0"
libraryDependencies += "org.apache.hadoop" % "hadoop-aws" % "2.7.3"

0 个答案:

没有答案