public final class DefaultS3TransferManager extends Object implements S3TransferManager
S3TransferManager.Builder| Constructor and Description |
|---|
DefaultS3TransferManager(software.amazon.awssdk.transfer.s3.internal.DefaultS3TransferManager.DefaultBuilder tmBuilder) |
| Modifier and Type | Method and Description |
|---|---|
static S3TransferManager.Builder |
builder()
Creates a default builder for
S3TransferManager. |
void |
close() |
<ResultT> Download<ResultT> |
download(DownloadRequest<ResultT> downloadRequest)
Download an object identified by the bucket and key from S3 through the given
AsyncResponseTransformer. |
FileDownload |
downloadFile(DownloadFileRequest downloadRequest)
Download an object identified by the bucket and key from S3 to a local file.
|
Upload |
upload(UploadRequest uploadRequest)
Upload the given
AsyncRequestBody to an object in S3. |
DirectoryUpload |
uploadDirectory(UploadDirectoryRequest uploadDirectoryRequest)
Upload all files under the given directory to the provided S3 bucket.
|
FileUpload |
uploadFile(UploadFileRequest uploadFileRequest)
Upload a local file to an object in S3.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcreate, download, downloadFile, upload, uploadDirectory, uploadFilepublic DefaultS3TransferManager(software.amazon.awssdk.transfer.s3.internal.DefaultS3TransferManager.DefaultBuilder tmBuilder)
public Upload upload(UploadRequest uploadRequest)
S3TransferManagerAsyncRequestBody to an object in S3. For file-based uploads, you may use
S3TransferManager.uploadFile(UploadFileRequest) instead.
Usage Example:
Upload upload =
tm.upload(u -> u.requestBody(AsyncRequestBody.fromString("Hello world"))
.putObjectRequest(p -> p.bucket("bucket").key("key")));
// Wait for the transfer to complete
upload.completionFuture().join();
See the static factory methods available in AsyncRequestBody for other use cases.upload in interface S3TransferManageruploadRequest - the upload request, containing a PutObjectRequest and AsyncRequestBodyUpload that can be used to track the ongoing transferS3TransferManager.upload(Consumer),
S3TransferManager.uploadFile(UploadFileRequest)public FileUpload uploadFile(UploadFileRequest uploadFileRequest)
S3TransferManagerS3TransferManager.upload(UploadRequest) instead.
Usage Example:
FileUpload upload =
tm.uploadFile(u -> u.source(Paths.get("myFile.txt"))
.putObjectRequest(p -> p.bucket("bucket").key("key")));
// Wait for the transfer to complete
upload.completionFuture().join();
uploadFile in interface S3TransferManagerS3TransferManager.uploadFile(Consumer),
S3TransferManager.upload(UploadRequest)public DirectoryUpload uploadDirectory(UploadDirectoryRequest uploadDirectoryRequest)
S3TransferManagerUploadDirectoryRequest. By default, all subdirectories will be uploaded
recursively, and symbolic links are not followed automatically. This behavior can be configured in
UploadDirectoryOverrideConfiguration
at request level via UploadDirectoryRequest.Builder.overrideConfiguration(UploadDirectoryOverrideConfiguration) or
client level via S3TransferManager.Builder.transferConfiguration(S3TransferManagerOverrideConfiguration) Note
that request-level configuration takes precedence over client-level configuration.
The returned CompletableFuture only completes exceptionally if the request cannot be attempted as a whole (the
source directory provided does not exist for example). The future completes successfully for partial successful
requests, i.e., there might be failed uploads in the successfully completed response. As a result,
you should check for errors in the response via CompletedDirectoryUpload.failedTransfers()
even when the future completes successfully.
The current user must have read access to all directories and files
Usage Example:
DirectoryUpload directoryUpload =
transferManager.uploadDirectory(UploadDirectoryRequest.builder()
.sourceDirectory(Paths.get("."))
.bucket("bucket")
.prefix("prefix")
.build());
// Wait for the transfer to complete
CompletedDirectoryUpload completedDirectoryUpload = directoryUpload.completionFuture().join();
// Print out the failed uploads
completedDirectoryUpload.failedTransfers().forEach(System.out::println);
uploadDirectory in interface S3TransferManageruploadDirectoryRequest - the upload directory requestS3TransferManager.uploadDirectory(Consumer),
UploadDirectoryOverrideConfigurationpublic <ResultT> Download<ResultT> download(DownloadRequest<ResultT> downloadRequest)
S3TransferManagerAsyncResponseTransformer. For
downloading to a file, you may use S3TransferManager.downloadFile(DownloadFileRequest) instead.
Usage Example (this example buffers the entire object in memory and is not suitable for large objects):
// Initiate the transfer
Download<ResponseBytes<GetObjectResponse>> download =
tm.download(d -> d.getObjectRequest(g -> g.bucket("bucket").key("key"))
.responseTransformer(AsyncResponseTransformer.toBytes()));
// Wait for the transfer to complete
download.completionFuture().join();
See the static factory methods available in AsyncResponseTransformer for other use cases.download in interface S3TransferManagerResultT - The type of data the AsyncResponseTransformer producesdownloadRequest - the download request, containing a GetObjectRequest and AsyncResponseTransformerDownload that can be used to track the ongoing transferS3TransferManager.download(Function),
S3TransferManager.downloadFile(DownloadFileRequest)public FileDownload downloadFile(DownloadFileRequest downloadRequest)
S3TransferManagerS3TransferManager.download(DownloadRequest) instead.
Usage Example:
// Initiate the transfer
FileDownload download =
tm.downloadFile(d -> d.getObjectRequest(g -> g.bucket("bucket").key("key"))
.destination(Paths.get("myFile.txt")));
// Wait for the transfer to complete
download.completionFuture().join();
downloadFile in interface S3TransferManagerS3TransferManager.downloadFile(Consumer),
S3TransferManager.download(DownloadRequest)public void close()
close in interface AutoCloseableclose in interface SdkAutoCloseablepublic static S3TransferManager.Builder builder()
S3TransferManagerS3TransferManager.builder in interface S3TransferManagerCopyright © 2022. All rights reserved.