How to upload file to DO space using JAVA AWS SDK (JAVA AMAZON SDK)?

September 30, 2017 1.8k views
API

Hello guys,
I have a problem with uploading a file to DO spaces using AWS JAVA SDK,
Can someone help me please,

I am getting errors:

Exception in thread "main" com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.

I will be so happy with getting your help...

5 Answers
aseemr September 30, 2017
Accepted Answer
AWSCredentialsProvider doCred = new AWSStaticCredentialsProvider(new BasicAWSCredentials("XXX", "YYY"));        
AmazonS3 doBuckets = AmazonS3ClientBuilder.standard()
                .withCredentials(doCred)
                .withEndpointConfiguration(new EndpointConfiguration("https://nyc3.digitaloceanspaces.com", "nyc3"))
                .build();

I got through connection but then ran into other issues. Opened a tkt with DO, they are investigating.

edited by kamaln7
  • Thanks alot @aseemr ,
    That trick solved the region problem.

    I now face this problem:
    Exception:

    Exception in thread "main" java.lang.UnsupportedOperationException: Client is immutable when created with the builder.

    I have searched different sources about its cause I didn't get one solution.
    may you halp me please?

    Thanks again @aseemr

    • Which API operation are you calling? All of them are not supported currently by DO, so that could be the issue.

This worked for me as well. Thanks.

When i try with v 1.11.232 of the aws-java-sdk-s3 I get the following error

Exception in thread "main" com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.
at com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:371)
at com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:337)
at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)
at com.amazonaws.services.s3.AmazonS3ClientBuilder.defaultClient(AmazonS3ClientBuilder.java:54)

Someone suggested trying ".withPathStyleAccessEnabled(true)", but that doesn't help

can you please share the full source code ?

Have another answer? Share your knowledge.