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

September 30, 2017 4.7k 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…

7 Answers
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 ?

Try to read this article.

Send Image from Java to DigitalOcean Space (Bucket) using AWS SDK

It’s exactly what you’re looking for.

Have another answer? Share your knowledge.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!