Class TransferManagerConfiguration

java.lang.Object
com.amazonaws.services.s3.transfer.TransferManagerConfiguration

public class TransferManagerConfiguration extends Object
Configuration options for how TransferManager processes requests.

The best configuration settings depend on network configuration, latency and bandwidth. The default configuration settings are suitable for most applications, but this class enables developers to experiment with different configurations and tune transfer manager performance.

  • Constructor Details

    • TransferManagerConfiguration

      public TransferManagerConfiguration()
  • Method Details

    • getMinimumUploadPartSize

      public long getMinimumUploadPartSize()
      Returns the minimum part size for upload parts. Decreasing the minimum part size causes multipart uploads to be split into a larger number of smaller parts. Setting this value too low has a negative effect on transfer speeds, causing extra latency and network communication for each part.
      Returns:
      The minimum part size for upload parts.
    • setMinimumUploadPartSize

      public void setMinimumUploadPartSize(long minimumUploadPartSize)
      Sets the minimum part size for upload parts. Decreasing the minimum part size causes multipart uploads to be split into a larger number of smaller parts. Setting this value too low has a negative effect on transfer speeds, causing extra latency and network communication for each part.
      Parameters:
      minimumUploadPartSize - The minimum part size for upload parts.
    • getMultipartUploadThreshold

      public long getMultipartUploadThreshold()
      Returns the size threshold in bytes for when to use multipart uploads. Uploads over this size will automatically use a multipart upload strategy, while uploads smaller than this threshold will use a single connection to upload the whole object.

      Multipart uploads are easier to recover from and potentially faster than single part uploads, especially when the upload parts can be uploaded in parallel as with files. Due to additional network communication, small uploads should use a single connection for the upload.

      Returns:
      The size threshold in bytes for when to use multipart uploads.
    • setMultipartUploadThreshold

      public void setMultipartUploadThreshold(long multipartUploadThreshold)
      Sets the size threshold in bytes for when to use multipart uploads. Uploads over this size will automatically use a multipart upload strategy, while uploads smaller than this threshold will use a single connection to upload the whole object.

      Multipart uploads are easier to recover from and potentially faster than single part uploads, especially when the upload parts can be uploaded in parallel as with files. Due to additional network communication, small uploads should use a single connection for the upload.

      Parameters:
      multipartUploadThreshold - The size threshold in bytes for when to use multipart uploads.
    • getMultipartCopyPartSize

      public long getMultipartCopyPartSize()
      Returns the minimum size in bytes of each part in a multi-part copy request. Decreasing this size will result in increase in the number of copy part requests to the server.
      Returns:
      The minimum size in bytes for each part in a multi-part copy request.
    • setMultipartCopyPartSize

      public void setMultipartCopyPartSize(long multipartCopyPartSize)
      Sets the minimum part size in bytes for each part in a multi-part copy request. Decreasing this size will result in increase in the number of copy part requests to the server.
      Parameters:
      multipartCopyPartSize - The minimum size in bytes for each part in a multi part copy request.
    • getMultipartCopyThreshold

      public long getMultipartCopyThreshold()
      Returns the maximum threshold size of an Amazon S3 object after which the copy operation is carried out using multi-part request.
      Returns:
      The size threshold of an Amazon S3 object for when to use a multi-part copy
    • setMultipartCopyThreshold

      public void setMultipartCopyThreshold(long multipartCopyThreshold)
      Sets the size threshold in bytes for when to use multi-part copy requests. Copy requests for objects over this size will automatically use a multi-part copy strategy, while copy requests for objects smaller than this threshold will use a single connection to copy the whole object.
      Parameters:
      multipartCopyThreshold - The size threshold in bytes for when to use multi part copy.
    • setMultipartUploadThreshold

      @Deprecated public void setMultipartUploadThreshold(int multipartUploadThreshold)
      Deprecated.
      Sets the size threshold in bytes for when to use multipart uploads. Uploads over this size will automatically use a multipart upload strategy, while uploads smaller than this threshold will use a single connection to upload the whole object.

      Multipart uploads are easier to recover from and potentially faster than single part uploads, especially when the upload parts can be uploaded in parallel as with files. Due to additional network communication, small uploads should use a single connection for the upload. This reversed the backward incompatibility with Hadoop 2.7 and S3A filesystem introduced in AWS SDK v1.7.6 by this pull request: https://github.com/aws/aws-sdk-java/pull/201 See details (on error message, and fix targeted for Hadoop 2.8) here: - https://issues.apache.org/jira/browse/HADOOP-12420 - https://issues.apache.org/jira/browse/HADOOP-12496 - https://issues.apache.org/jira/browse/HADOOP-12269 Once Hadoop 2.8 (which uses aws-sdk 1.10.6 or later) is used commonly, this may be removed

      Parameters:
      multipartUploadThreshold - The size threshold in bytes for when to use multipart uploads.