Question

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

  • Posted September 30, 2017
  • 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…

Subscribe
Share

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

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

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.

 AWSCredentials credentials = new BasicAWSCredentials(
                "fwfrfwrf",
                "nJdgnzCR6orfwrfrfVPXU"
        );

        AmazonS3 s3client = AmazonS3ClientBuilder
                .standard()
                .withCredentials(new AWSStaticCredentialsProvider(credentials))
                .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("nyc3.digitaloceanspaces.com", "nyc3"))
                .build();

And Special thing is when you create the access tokens, you must create Spaces access keys (not Personal access tokens). And another thing is when you put the EndpointConfiguration, you put the endpoint without https://

Try to read this article.

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

It’s exactly what you’re looking for.

This comment has been deleted

can you please share the full source code ?

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

This worked for me as well. Thanks.

This worked for me.