jclouds-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Archana C <carchan...@yahoo.co.uk>
Subject Re: requested location eu-central-1, which is not in the configured locations
Date Tue, 08 Mar 2016 09:54:56 GMT
 From the amazon documentation, we understand that the region eu-central-1 (Frankfurt) supports
only AWS signature version 4, and from https://issues.apache.org/jira/browse/JCLOUDS-480
we understand the jclouds already has the support added for version 4 signature. 
What we are trying to figure out is *if* we need to do anything from the client side to change
the authorization signature.  We were hoping the BlobStore APIs might work it used to with
out changing the client code, however, we see the requests sent are using V2 signature, and
the server is rejecting them. 
2016-03-08 14:57:57,044 DEBUG [jclouds.wire] [main] >> "Test[\n]"2016-03-08 14:57:57,045
DEBUG [jclouds.headers] [main] >> PUT https://testcontainer3.s3-eu-central-1.amazonaws.com/file1
HTTP/1.12016-03-08 14:57:57,045 DEBUG [jclouds.headers] [main] >> Expect: 100-continue2016-03-08
14:57:57,045 DEBUG [jclouds.headers] [main] >> Host: testcontainer3.s3-eu-central-1.amazonaws.com2016-03-08
14:57:57,045 DEBUG [jclouds.headers] [main] >> Date: Tue, 08 Mar 2016 09:27:50 GMT2016-03-08
14:57:57,045 DEBUG [jclouds.headers] [main] >> Authorization: AWS AKIAISCW6DRRITWR6IWQ:6AndVHQV2w75OXQDq/9sWt37KN0=2016-03-08
14:57:57,045 DEBUG [jclouds.headers] [main] >> Content-Type: application/unknown2016-03-08
14:57:57,045 DEBUG [jclouds.headers] [main] >> Content-Length: 5
org.jclouds.http.HttpResponseException: Server rejected operation connecting to PUT https://testcontainer3.s3-eu-central-1.amazonaws.com/file1
HTTP/1.1 at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:118)
at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90) at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
Any help on how to use the AWS version 4 signature for the blobstore APIs will be much appreciated. 
NB: With the last commit mentioned in the above reply, we do not see the region not supported
exception anymore. 
Thanks!
RegardsArchana
     

    On Tuesday, 8 March 2016, 10:54, Andrew Gaul <gaul@apache.org> wrote:
 

 Please test again with the latest master which includes a fix:

https://git-wip-us.apache.org/repos/asf?p=jclouds.git;a=commit;h=c18371a7

On Mon, Mar 07, 2016 at 12:29:59PM +0000, Archana C wrote:
> public class App 
> {
>     public static void main( String[] args ) throws IOException
>     {
>         // TODO Auto-generated method stub
>                 // TODO Auto-generated method stub
>                 String containername = "archanatrial12";
>                 String objectname = "object1";
>                 String tempFile = "/home/archana/Eclipse/trialV42/src/main/java/trialV41/trialV42/result.txt";
>                 //int length;
>                 
>                 // s3.amazonaws.com   s3.eu-central-1.amazonaws.com  
s3-external-1.amazonaws.com
>                         
>             BlobStoreContext context = ContextBuilder.newBuilder("aws-s3")
>                         .credentials("XXXXXXXXXXX", "YYYYYYYYYYYYYYYYYYY")
>                         .buildView(BlobStoreContext.class);
>             
>                 // Access the BlobStore
>                 BlobStore blobStore = context.getBlobStore();
>                 //Location loc = "us-east-1";
>                 Location loc = new LocationBuilder().scope(LocationScope.REGION)
>                         .id("eu-central-1")
>                         .description("region")
>                         .build();
> 
>                 // Create a Container
>                 blobStore.createContainerInLocation(loc, containername);
> 
>                 // Create a Blob
>                 File input = new File("/home/archana/Eclipse/jclouds1/src/main/java/jclouds1/sample.txt");
>                 long length = input.length();
>                 // Add a Blob
>                 Blob blob = blobStore.blobBuilder(objectname).payload(Files.asByteSource(input)).contentLength(length)
>                         .contentDisposition(objectname).build();
> 
>                 // Upload the Blob
>                 String eTag = blobStore.putBlob(containername, blob);
>                 System.out.println(eTag);}}
> Error  : requested location eu-central-1, which is not in the configured locations
> Solution to rectify the issue required
> 
> RegardsArchana

-- 
Andrew Gaul
http://gaul.org/


  
Mime
View raw message