如何使用JClouds明确指定S3区域?

时间:2019-09-03 08:51:16

标签: java amazon-web-services amazon-s3 kotlin jclouds

我正在使用jclouds并尝试抽象掉S3访问。但是,当尝试获取对象时,出现以下异常:

org.jclouds.aws.AWSResponseException: request GET https://test-itpx.s3.amazonaws.com/marcel-mini.jpeg HTTP/1.1 failed with code 400, error: AWSError{requestId='0FB8701BF3CE81EB', requestToken='XXX', code='AuthorizationHeaderMalformed', message='The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'eu-west-1'', context='{Region=eu-west-1, HostId=XXX=}'}

从外观上看,S3需要明确的区域定义,answers such as this one建议明确定义它。

不幸的是,blob上下文构建器无法提供指定区域的方法。我定义上下文的方式是:

 val context = ContextBuilder.newBuilder("aws-s3")
                .credentials("access_key", "access_secret")
                .buildView(BlobStoreContext::class.java)

对象get是一个简单的getBlob

context.storageContext.getBlob(source.bucket, source.key)

是否可以使用jclouds明确定义s3区域/位置?

我正在使用jclouds-allblobstore版本2.1.2。

0 个答案:

没有答案