maven repository on DigitalOcean spaces - any luck?

Posted December 30, 2017 6.3k views

Gradle 2.4 introduced S3 support: ,

DigitalOcean Spaces says it support s3 protocol.

But, looks like it is not drop-in replacement: after re-pointing s3 mvn repo url to DO spaces URL it is not working.

I created folder “if-mvn”, created key and secret, and trying to publish artefact to s3://

Got error:

Execution failed for task ’:myApp:publishFatJarPublicationToMyRepository’.

Failed to publish publication ‘fatJar’ to repository 'My’
Could not get resource 's3://’.
The AWS Access Key Id you provided does not exist in our records. (Service: Amazon S3; Status Code: 403; Error Code: InvalidAccessKeyId; Request ID: FB0B6D0F712B59E4)

Unfortunately, DigitalOcean support were unable to explain (Ticket #711785) what’s exactly wrong with Request ID: FB0B6D0F712B59E4

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.

Submit an Answer
4 answers

I have been trying to do the same. After half a day of trying… I found this very interesting discussion -> And here the author mentions a property that you need to set “-Dorg.gradle.s3.endpoint=”.

publishing {
    repositories {
        maven {
            url "s3://if-mvn"
            credentials(AwsCredentials) {
                accessKey "access"
                secretKey "secret"

Long story short: the url you set in publishing.repositories.maven is actually the bucket.

Are you able to change the S3 API signature? Try versions 2 and 4 and see if you have any success.

Were you ever able to solve this issue? There is the s3-wagon-private which works for Leiningen but ‘should’ work if you use the 's3p://’ urls.

If you’re looking for a managed solution that leverages S3 for storage, I founded CloudRepo which offers Private Maven Repositories and we store all the artifacts in S3.

If you need something above this type of support, please let me know - we’re always looking for new ways to improve and help people in the community.

As mentioned in here you have to set following property in your file:

An example for the Frankfurt location would be

Then yo can specify your repo as specified by the official Gradle documentation