soto-core icon indicating copy to clipboard operation
soto-core copied to clipboard

AWSServiceConfig forces a timeout

Open JetForMe opened this issue 7 months ago • 1 comments

Describe the bug

AWSServiceConfig’s initializer forces a non-nil timeout by providing a default value if nil is passed in. This eventually gets passed to async-http-client, which uses it as a hard deadline for completing a task.

Very large file uploads can take a long time (even using multipart), and guessing the right timeout can be a pain. It would be better to not specify a timeout at all, which will make async-http-client avoid setting any timeout schedulers. You can still rely on the underlying network stack to time out, which tends to time out only when lower-level stuff is not ACKed.

To Reproduce

n/a

Expected behavior

The API provides no way to specify "no timeout." Normally this would be done by passing nil, but it takes that and sets a default 20-second timeout here.

Setup (please complete the following information):

Any

Additional context

Possibly fixed by either setting the default timeout as the default argument in the initializer, but unfortunately that would also need to be set in the S3 initializer. Better would be to make timeout optional in AWSServiceConfig.

JetForMe avatar Jul 31 '24 03:07 JetForMe