ResumableFileDownload
to disk.software.amazon.awssdk.transfer.s3.model
and moved configuration classes to software.amazon.awssdk.transfer.s3.config
DownloadDirectoryRequest.destinationDirectory
to destination
.ResumableFileDownload
‘s to
and writeTo
methods to serializeTo
to make it clear that these aren’t affecting the download.UploadDirectoryRequest.prefix
and delimiter
to s3Prefix
and s3Delimiter
to make it clear these are S3 parameters, not file-system parameters.aws-crt
an optional dependency in s3-transfer-manager
module. Customers need to explicitly add aws-crt
dependency if they want to use CRT-based Transfer Managerrecursive
option. The same functionality can be achieved with UploadDirectoryRequest.builder().maxDepth(1)
or S3TransferManager.builder().maxUploadDirectoryDepth(1).DownloadDirectoryRequest.prefix
and delimiter
. The same functionality is already available via the listObjectsV2RequestTransformer
.ResumableFileDownload
‘s string options, because there’s no reason to choose something other than UTF-8.CombinedResponseAsyncHttpResponseHandler#onStream
when onError
got invoked firstS3 query param validation
The SDK will raise SdkClientException when a null value is set for a member marked with the required trait.
Special thanks to the following contributors to this release:
hostPrefix
in services, causing requests for some services to have the wrong URL. This change also undoes the suppression of rules-based endpoint generation for all services apart from EventBridge, S3, and S3 Control, which was implemented in #3520 because of the previously mentioned hostPrefix
issue.This fixes an issue with the client option validation where the client builder is incorrectly validating that a value for the SIGNER option is present, even when it's not required (because the service does not use AWS auth).
This change only does the appropriate validations based on the authtypes present in the service model.
ProcessCredentialProvider
. See #3377hostPrefix
in its service model. S3 and S3Control have hostPrefix
in the model, it is handled by the rule set.Special thanks to the following contributors to this release:
This release updates internal logic for constructing API endpoints.
We have added rule-based endpoint providers. Additionally there are new interfaces for endpoint providers and parameters at the service client level.
The SDK provides service-specific EndpointProvider
interfaces (e.g. S3EndpointProvider
), that have a single method resolveEndpoint
. resolveEndpoint
accepts a set of parameters (also service specific) and computes an endpoint based on those parameters. All clients have a default implementation, but users are free to implement these to customize their endpoint logic.
It is important to know that EndpointProvider
s and the endpoint override on the client are not mutually exclusive. In all existing cases, the endpoint override is passed as a parameter to the the provider and the provider may modify it. For example, the S3 provider may add the bucket name as a prefix to the endpoint override for virtual bucket addressing.
There may be some behavior changes related to endpoint resolution as as the the endpoint resolution is now standardised across SDKs so this release also bumps the minor version of the SDK to 2.18
.
Notably, there are some changes in S3: when including and endpoint override, the SDK will use virtual bucket addressing as long as the bucket is a valid DNS label. This is different from the previous behavior where this only happens if the endpoint override begins with ‘s3’.
In many situations, the exception thrown for validations like including an endpoint override and enabling DualStack has changed to SdkClientExcpetion
and error messages have changed as well.
Updated endpoint and partition metadata.