Class S3BlobStoreConfiguration

    • Field Detail

      • CONNECTION_MAX_PROPERTY

        public static final String CONNECTION_MAX_PROPERTY
        AWS ClientConfiguration default 50
        See Also:
        Constant Field Values
      • CONNECTION_RETRY_PROPERTY

        public static final String CONNECTION_RETRY_PROPERTY
        AWS ClientConfiguration default 3 (with exponential backoff)
        See Also:
        Constant Field Values
      • CONNECTION_TIMEOUT_PROPERTY

        public static final String CONNECTION_TIMEOUT_PROPERTY
        AWS ClientConfiguration default 50*1000 = 50s
        See Also:
        Constant Field Values
      • SOCKET_TIMEOUT_PROPERTY

        public static final String SOCKET_TIMEOUT_PROPERTY
        AWS ClientConfiguration default 50*1000 = 50s
        See Also:
        Constant Field Values
      • SERVERSIDE_ENCRYPTION_KMS_KEY_PROPERTY

        public static final String SERVERSIDE_ENCRYPTION_KMS_KEY_PROPERTY
        See Also:
        Constant Field Values
      • DIRECTDOWNLOAD_EXPIRE_PROPERTY_COMPAT

        public static final String DIRECTDOWNLOAD_EXPIRE_PROPERTY_COMPAT
        See Also:
        Constant Field Values
      • MULTIPART_CLEANUP_DISABLED_PROPERTY

        public static final String MULTIPART_CLEANUP_DISABLED_PROPERTY
        Disable automatic abort of old multipart uploads at startup time.
        Since:
        11.1
        See Also:
        Constant Field Values
      • MULTIPART_COPY_PART_SIZE_CONFIGURATION_PROPERTY

        public static final String MULTIPART_COPY_PART_SIZE_CONFIGURATION_PROPERTY
        The deprecated configuration property to define the multipart copy part size, for backward compatibility.
        Since:
        2021.11
        See Also:
        Constant Field Values
      • MULTIPART_COPY_PART_SIZE_PROPERTY

        public static final String MULTIPART_COPY_PART_SIZE_PROPERTY
        The Framework property to define the multipart copy part size.
        See Also:
        Constant Field Values
      • MULTIPART_COPY_PART_SIZE_DEFAULT

        public static final long MULTIPART_COPY_PART_SIZE_DEFAULT
        The default value for the multipart copy part size.
        Since:
        2021.11
        See Also:
        Constant Field Values
      • MULTIPART_COPY_THRESHOLD_PROPERTY

        public static final String MULTIPART_COPY_THRESHOLD_PROPERTY
        The Framework property to define the multipart copy threshold.
        Since:
        2021.11
        See Also:
        Constant Field Values
      • MULTIPART_COPY_THRESHOLD_DEFAULT

        public static final long MULTIPART_COPY_THRESHOLD_DEFAULT
        The default value for the multipart copy threshold.
        Since:
        2021.11
        See Also:
        Constant Field Values
      • MULTIPART_UPLOAD_THRESHOLD_PROPERTY

        public static final String MULTIPART_UPLOAD_THRESHOLD_PROPERTY
        The Framework property to define the multipart upload threshold.
        Since:
        2021.11
        See Also:
        Constant Field Values
      • MULTIPART_UPLOAD_THRESHOLD_DEFAULT

        public static final long MULTIPART_UPLOAD_THRESHOLD_DEFAULT
        The default value for the multipart upload threshold.
        Since:
        2021.11
        See Also:
        Constant Field Values
      • MINIMUM_UPLOAD_PART_SIZE_PROPERTY

        public static final String MINIMUM_UPLOAD_PART_SIZE_PROPERTY
        The Framework property to define the minimum upload part size.
        Since:
        2021.11
        See Also:
        Constant Field Values
      • MINIMUM_UPLOAD_PART_SIZE_DEFAULT

        public static final long MINIMUM_UPLOAD_PART_SIZE_DEFAULT
        The default value for the minimum upload part size.
        Since:
        2021.11
        See Also:
        Constant Field Values
      • TRANSFER_MANAGER_THREAD_POOL_SIZE_PROPERTY

        public static final String TRANSFER_MANAGER_THREAD_POOL_SIZE_PROPERTY
        The Framework property to define the transfer manager thread pool size.
        Since:
        2021.14
        See Also:
        Constant Field Values
      • TRANSFER_MANAGER_THREAD_POOL_SIZE_DEFAULT

        public static final int TRANSFER_MANAGER_THREAD_POOL_SIZE_DEFAULT
        The default value for the transfer manager thread pool size.
        Since:
        2021.14
        See Also:
        Constant Field Values
      • DISABLE_PROXY_PROPERTY

        public static final String DISABLE_PROXY_PROPERTY
        Framework property to disable usage of the proxy environment variables (nuxeo.http.proxy.*) for the connection to the S3 endpoint.
        Since:
        11.1
        See Also:
        Constant Field Values
      • DEFAULT_RETENTION_MODE

        public static final com.amazonaws.services.s3.model.ObjectLockRetentionMode DEFAULT_RETENTION_MODE
      • amazonS3

        public final com.amazonaws.services.s3.AmazonS3 amazonS3
      • transferManager

        public final com.amazonaws.services.s3.transfer.TransferManager transferManager
      • bucketName

        public final String bucketName
      • bucketPrefix

        public final String bucketPrefix
      • useServerSideEncryption

        public final boolean useServerSideEncryption
      • serverSideKMSKeyID

        public final String serverSideKMSKeyID
      • useClientSideEncryption

        public final boolean useClientSideEncryption
      • metadataAddUsername

        public final boolean metadataAddUsername
      • s3RetentionEnabled

        public final boolean s3RetentionEnabled
        Is Object Lock feature enabled at s3 level.
        Since:
        2021.13
      • retentionMode

        public final com.amazonaws.services.s3.model.ObjectLockRetentionMode retentionMode
        The retention mode to use when setting the retention on an object.
      • pathStrategy

        protected final PathStrategy pathStrategy
        The path strategy according to the sub directory depth configuration.
        Since:
        2023.7
      • pathSeparatorIsBackslash

        protected final boolean pathSeparatorIsBackslash
        Is backslash "/" the path separator.
        Since:
        2023.7
    • Method Detail

      • computeBucketRetentionMode

        protected com.amazonaws.services.s3.model.ObjectLockRetentionMode computeBucketRetentionMode()
        Gets the s3 bucket's object lock default mode ObjectLockRetentionMode#GOVERNANCE or ObjectLockRetentionMode#COMPLIANCE.

        If undefined, the retention mode of the Nuxeo platform is returned.

        Returns null if object lock is not enabled on the bucket.

        Since:
        2023.0
      • close

        public void close()
      • getMultipartCopyPartSize

        public static long getMultipartCopyPartSize()
        Since:
        2021.11
      • getLongProperty

        public static long getLongProperty​(String key,
                                           long defaultValue)
        Since:
        2021.11
      • getBucketName

        protected String getBucketName()
      • bucketKey

        protected String bucketKey​(String key)
        Gets the bucket key for the given blob key taking into account the bucket prefix and the path strategy (sub directory depth).
        Since:
        2023.7
      • getBucketPrefix

        protected String getBucketPrefix()
      • getSubDirsDepth

        protected int getSubDirsDepth()
      • getAWSCredentialsProvider

        protected com.amazonaws.auth.AWSCredentialsProvider getAWSCredentialsProvider()
      • getClientConfiguration

        protected com.amazonaws.ClientConfiguration getClientConfiguration()
      • getEncryptionMaterials

        protected com.amazonaws.services.s3.model.EncryptionMaterials getEncryptionMaterials()
      • configurePathStyleAccess

        protected void configurePathStyleAccess​(com.amazonaws.services.s3.AmazonS3Builder<?,​?> s3Builder)
      • configureRegionOrEndpoint

        protected void configureRegionOrEndpoint​(com.amazonaws.services.s3.AmazonS3Builder<?,​?> s3Builder)
      • configureAccelerateMode

        protected void configureAccelerateMode​(com.amazonaws.services.s3.AmazonS3Builder<?,​?> s3Builder)
      • getAmazonS3

        protected com.amazonaws.services.s3.AmazonS3 getAmazonS3​(com.amazonaws.services.s3.AmazonS3Builder<?,​?> s3Builder)
      • createTransferManager

        protected com.amazonaws.services.s3.transfer.TransferManager createTransferManager()
      • getRetentionMode

        @Deprecated
        protected com.amazonaws.services.s3.model.ObjectLockRetentionMode getRetentionMode()
        Deprecated.
        since 11.4, unused
      • isS3RetentionEnabled

        @Deprecated
        protected boolean isS3RetentionEnabled()
        Deprecated.
        since 2023.0, unused
      • abortOldUploads

        protected void abortOldUploads()
        Aborts uploads that crashed and are older than 1 day.
      • abortOldMultipartUploadsInternal

        protected void abortOldMultipartUploadsInternal()