Class PayloadStorageConfiguration

java.lang.Object
software.amazon.payloadoffloading.PayloadStorageConfigurationBase
software.amazon.payloadoffloading.PayloadStorageConfiguration

@NotThreadSafe public class PayloadStorageConfiguration extends PayloadStorageConfigurationBase

Amazon payload storage configuration options such as synchronous Amazon S3 client, bucket name, and payload size threshold for payloads.

Server side encryption is optional and can be enabled using with withServerSideEncryption(ServerSideEncryptionStrategy) or PayloadStorageConfigurationBase.setServerSideEncryptionStrategy(ServerSideEncryptionStrategy)

There are two possible options for server side encrption. This can be using a customer managed key or AWS managed CMK.

Example usage:
     withServerSideEncryption(ServerSideEncrptionFactory.awsManagedCmk())
 
or
     withServerSideEncryption(ServerSideEncrptionFactory.customerKey(YOUR_CUSTOMER_ID))
 
See Also:
  • Constructor Details

    • PayloadStorageConfiguration

      public PayloadStorageConfiguration()
    • PayloadStorageConfiguration

      public PayloadStorageConfiguration(PayloadStorageConfiguration other)
  • Method Details

    • setPayloadSupportEnabled

      public void setPayloadSupportEnabled(software.amazon.awssdk.services.s3.S3Client s3, String s3BucketName)
      Enables support for payloads .
      Parameters:
      s3 - Amazon S3 client which is going to be used for storing payload.
      s3BucketName - Name of the bucket which is going to be used for storing payload. The bucket must be already created and configured in s3.
    • withPayloadSupportEnabled

      public PayloadStorageConfiguration withPayloadSupportEnabled(software.amazon.awssdk.services.s3.S3Client s3, String s3BucketName)
      Enables support for payload.
      Parameters:
      s3 - Amazon S3 client which is going to be used for storing payloads.
      s3BucketName - Name of the bucket which is going to be used for storing payloads. The bucket must be already created and configured in s3.
      Returns:
      the updated PayloadStorageConfiguration object.
    • setPayloadSupportDisabled

      public void setPayloadSupportDisabled()
      Disables support for payloads.
      Overrides:
      setPayloadSupportDisabled in class PayloadStorageConfigurationBase
    • withPayloadSupportDisabled

      public PayloadStorageConfiguration withPayloadSupportDisabled()
      Disables support for payload.
      Returns:
      the updated PayloadStorageConfiguration object.
    • getS3Client

      public software.amazon.awssdk.services.s3.S3Client getS3Client()
      Gets the Amazon S3 client which is being used for storing payloads.
      Returns:
      Reference to the Amazon S3 client which is being used.
    • withPayloadSizeThreshold

      public PayloadStorageConfiguration withPayloadSizeThreshold(int payloadSizeThreshold)
      Sets the payload size threshold for storing payloads in Amazon S3.
      Parameters:
      payloadSizeThreshold - Payload size threshold to be used for storing in Amazon S3. Default: 256KB.
      Returns:
      the updated PayloadStorageConfiguration object.
    • withAlwaysThroughS3

      public PayloadStorageConfiguration withAlwaysThroughS3(boolean alwaysThroughS3)
      Sets whether or not all payloads regardless of their size should be stored in Amazon S3.
      Parameters:
      alwaysThroughS3 - Whether or not all payloads regardless of their size should be stored in Amazon S3. Default: false
      Returns:
      the updated PayloadStorageConfiguration object.
    • withServerSideEncryption

      public PayloadStorageConfiguration withServerSideEncryption(ServerSideEncryptionStrategy serverSideEncryptionStrategy)
      Sets which method of server side encryption should be used, if required. This is optional, it is set only when you want to configure S3 server side encryption with KMS.
      Parameters:
      serverSideEncryptionStrategy - The method of encryption required for S3 server side encryption with KMS.
      Returns:
      the updated PayloadStorageConfiguration object.
    • withObjectCannedACL

      public PayloadStorageConfiguration withObjectCannedACL(software.amazon.awssdk.services.s3.model.ObjectCannedACL objectCannedACL)
      Configures the ACL to apply to the Amazon S3 putObject request.
      Parameters:
      objectCannedACL - The ACL to be used when storing objects in Amazon S3