Vague exception thrown when using new S3 Transfer Manager preview for Java

0

I'm trying to use the new S3 Transfer Manager preview at https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/transfer-manager.html.

When trying to do any operation (downloadFile, uploadFile or uploadDirectory) I get:

[code]Caused by: software.amazon.awssdk.crt.s3.CrtS3RuntimeException: Retry cannot be attempted because the maximum number of retries has been exceeded. AWS_IO_MAX_RETRIES_EXCEEDED(1069)
at com.amazonaws.s3.S3NativeClient$1.onFinished(S3NativeClient.java:206)[/code]

But the real cause of why this operation fails is nowhere to be found. I have full debug logging, but the library is very silent.

When using the "normal" S3AsyncClient and putting objects, all works fine, so there shouldn't be a permission or network issue.

I'm on a Mac (Intel) using Java 8 with the s3 SDK v2.17.75, s3-transfer-manager v2.17.77-PREVIEW, aws-crt v0.15.9 and aws-crt-client v2.17.71-PREVIEW.

Where should I start looking?
A missing library? But which?

Edited by: AndersC on Nov 11, 2021 7:46 PM Added jar versions.

AndersC
asked 2 years ago681 views
2 Answers
0

In case someone else stumbles upon this post looking for an answer --- as Anders found out through testing and informed me:

The issues is if you use the TransferManager and your S3 Bucket has a period in the name, then it will fail with the "too many retries" error. The issue is that it uses the Bucket name as part of the domain name for connecting to S3 (using https://<bucketname>.s3.<region>.amazonaws.com as access point). Even though an S3 Bucket can legally have a period in the name, the code does not currently support it.

Thanks for the tip Anders!

answered 2 years ago
0

mjdinsmore wrote:
The issues is if you use the TransferManager and your S3 Bucket has a period in the name, then it will fail with the "too many retries" error. The issue is that it uses the Bucket name as part of the domain name for connecting to S3 (using https://<bucketname>.s3.<region>.amazonaws.com as access point). Even though an S3 Bucket can legally have a period in the name, the code does not currently support it.
Yes, I should have posted a follow up here when I realized this. I've created a new "issue" for this at https://github.com/aws/aws-sdk-java-v2/issues/2864. Hopefully it will eventually be resolved.

Thanks for the tip Anders!
You're welcome. Only took me a couple of weeks to find out. :) (Though not working 100% on this.)

Now I just have to find out how to add a progress listener to the uploadDirectory() call. Seems to only be supported (yet) when transferring individual files.

AndersC
answered 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions