[
https://issues.apache.org/jira/browse/JCLOUDS-1213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15819472#comment-15819472
]
Timur Alperovich commented on JCLOUDS-1213:
-------------------------------------------
I'm running into a similar problem when attempting to list contents of a
non-US-Standard bucket.
Here is the simple failing example (fails with jclouds 2.0.0):
{code}
public class TestMain {
public static void main(String[] args) throws Exception {
BlobStoreContext context = ContextBuilder.newBuilder("aws-s3")
.credentials("AWS-ACCESS-KEY-ID", "SECRET-ACCESS-KEY")
.buildView(BlobStoreContext.class);
BlobStore blobStore = context.getBlobStore();
for (StorageMetadata meta: blobStore.list("EU-West-1-Bucket")) {
System.out.println(meta.getName());
}
}
}
{code}
The resulting error is:
{{message='The authorization header is malformed; the region 'us-east-1' is
wrong; expecting 'eu-west-1''}}
I suspect jclouds needs to check the bucket location before submitting the
request. I haven't figured out how to express that.
> S3: Region is not respected
> ---------------------------
>
> Key: JCLOUDS-1213
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1213
> Project: jclouds
> Issue Type: Bug
> Components: jclouds-blobstore
> Affects Versions: 2.0.0
> Reporter: Halvdan Hoem Grelland
> Labels: aws-s3
>
> When using a BlobStore configured for the 'aws-s3' provider and with an
> explicit region ('eu-west-1' in this case),
> _BlobStore.createContainerInLocation(Location location, String container)_
> fails with a 400 when attempting to create an already existing bucket on that
> location.
> The error message from AWS claims the cause to be
> _AuthorizationHeaderMalformed_, and says that 'eu-west-1' was expected, but
> that 'us-east-1' was supplied in the PUT request.
> I have confirmed that 'eu-west-1' is, in fact, given to the method call, but
> it does not seem to be respected when forming and signing the request.
> This does not happen on 1.9.x.
> From the debugging i have done a likely culprit seems to be
> _Aws4SignerForAuthorizationHeader_ which resolves a _ServiceAndRegion_
> instance, which in turn seem to attempt parsing the region from the hostname
> URL (_AWSHostNameUtils.parseRegionName(..)_). I cannot see the region set for
> the provider being respected in this case.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)