Package org.nuxeo.ecm.blob.s3
Class S3BlobStoreConfiguration
java.lang.Object
org.nuxeo.ecm.core.blob.PropertyBasedConfiguration
org.nuxeo.ecm.core.blob.AbstractBlobStoreConfiguration
org.nuxeo.ecm.blob.CloudBlobStoreConfiguration
org.nuxeo.ecm.blob.s3.S3BlobStoreConfiguration
Blob storage configuration in S3.
- Since:
- 11.1
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
final com.amazonaws.services.s3.AmazonS3
static final String
static final String
static final String
static final String
static final String
static final String
static final String
final String
final String
static final String
static final String
final CloudFrontConfiguration
static final String
AWS ClientConfiguration default 50static final String
AWS ClientConfiguration default 3 (with exponential backoff)static final String
AWS ClientConfiguration default 50*1000 = 50sstatic final com.amazonaws.services.s3.model.ObjectLockRetentionMode
static final String
static final String
static final String
static final String
Framework property to disable usage of the proxy environment variables (nuxeo.http.proxy.*
) for the connection to the S3 endpoint.static final String
static final String
static final String
static final String
static final String
final boolean
static final long
The default value for the minimum upload part size.static final String
The Framework property to define the minimum upload part size.static final String
Disable automatic abort of old multipart uploads at startup time.static final String
The deprecated configuration property to define the multipart copy part size, for backward compatibility.static final long
The default value for the multipart copy part size.static final String
The Framework property to define the multipart copy part size.static final long
The default value for the multipart copy threshold.static final String
The Framework property to define the multipart copy threshold.static final long
The default value for the multipart upload threshold.static final String
The Framework property to define the multipart upload threshold.protected final boolean
Is backslash "/" the path separator.protected final PathStrategy
The path strategy according to the sub directory depth configuration.static final String
static final String
static final String
final com.amazonaws.services.s3.model.ObjectLockRetentionMode
The retention mode to use when setting the retention on an object.final boolean
Is Object Lock feature enabled at s3 level.static final String
static final String
final String
static final String
AWS ClientConfiguration default 50*1000 = 50sstatic final String
static final int
The default value for the transfer manager thread pool size.static final String
The Framework property to define the transfer manager thread pool size.final com.amazonaws.services.s3.transfer.TransferManager
final boolean
static final String
static final String
final boolean
Fields inherited from class org.nuxeo.ecm.blob.CloudBlobStoreConfiguration
cachingConfiguration, DEFAULT_DIRECTDOWNLOAD_EXPIRE, DIGEST_ALGORITHM_PROPERTY, digestConfiguration, directDownload, DIRECTDOWNLOAD_EXPIRE_PROPERTY, DIRECTDOWNLOAD_PROPERTY, directDownloadExpire
Fields inherited from class org.nuxeo.ecm.core.blob.AbstractBlobStoreConfiguration
namespace
Fields inherited from class org.nuxeo.ecm.core.blob.PropertyBasedConfiguration
properties, systemPropertyPrefix
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
protected void
Aborts uploads that crashed and are older than 1 day.protected String
Gets the bucket key for the given blob key taking into account the bucket prefix and the path strategy (sub directory depth).void
close()
protected com.amazonaws.services.s3.model.ObjectLockRetentionMode
Gets the s3 bucket's object lock default modeObjectLockRetentionMode#GOVERNANCE
orObjectLockRetentionMode#COMPLIANCE
.protected void
configureAccelerateMode
(com.amazonaws.services.s3.AmazonS3Builder<?, ?> s3Builder) protected void
configurePathStyleAccess
(com.amazonaws.services.s3.AmazonS3Builder<?, ?> s3Builder) protected void
configureRegionOrEndpoint
(com.amazonaws.services.s3.AmazonS3Builder<?, ?> s3Builder) protected com.amazonaws.services.s3.transfer.TransferManager
protected com.amazonaws.services.s3.AmazonS3
getAmazonS3
(com.amazonaws.services.s3.AmazonS3Builder<?, ?> s3Builder) protected com.amazonaws.auth.AWSCredentialsProvider
protected String
protected String
protected String
protected com.amazonaws.ClientConfiguration
protected com.amazonaws.services.s3.model.EncryptionMaterials
static long
getLongProperty
(String key, long defaultValue) static long
protected com.amazonaws.services.s3.model.ObjectLockRetentionMode
Deprecated.since 11.4, unusedprotected int
protected boolean
Deprecated.since 2023.0, unusedprotected boolean
protected long
withNamespace
(String ns) Returns a copy of the S3BlobStoreConfiguration with a different namespace.Methods inherited from class org.nuxeo.ecm.core.blob.AbstractBlobStoreConfiguration
propertiesWithNamespace
Methods inherited from class org.nuxeo.ecm.core.blob.PropertyBasedConfiguration
getBooleanProperty, getIntProperty, getIntProperty, getLongProperty, getProperty, getProperty
-
Field Details
-
SYSTEM_PROPERTY_PREFIX
- See Also:
-
BUCKET_NAME_PROPERTY
- See Also:
-
BUCKET_PREFIX_PROPERTY
- See Also:
-
BUCKET_SUB_DIRS_DEPTH_PROPERTY
- See Also:
-
BUCKET_REGION_PROPERTY
- See Also:
-
AWS_ID_PROPERTY
- See Also:
-
AWS_SECRET_PROPERTY
- See Also:
-
AWS_SESSION_TOKEN_PROPERTY
- See Also:
-
CONNECTION_MAX_PROPERTY
AWS ClientConfiguration default 50- See Also:
-
CONNECTION_RETRY_PROPERTY
AWS ClientConfiguration default 3 (with exponential backoff)- See Also:
-
CONNECTION_TIMEOUT_PROPERTY
AWS ClientConfiguration default 50*1000 = 50s- See Also:
-
SOCKET_TIMEOUT_PROPERTY
AWS ClientConfiguration default 50*1000 = 50s- See Also:
-
KEYSTORE_FILE_PROPERTY
- See Also:
-
KEYSTORE_PASS_PROPERTY
- See Also:
-
KEYSTORE_LEGACY_MODE_PROPERTY
- Since:
- 2023.18
- See Also:
-
SERVERSIDE_ENCRYPTION_PROPERTY
- See Also:
-
SERVERSIDE_ENCRYPTION_KMS_KEY_PROPERTY
- See Also:
-
CLIENTSIDE_ENCRYPTION_KMS_KEY_PROPERTY
- Since:
- 2023.17
- See Also:
-
CLIENTSIDE_ENCRYPTION_KMS_REGION_PROPERTY
- Since:
- 2023.17
- See Also:
-
PRIVKEY_ALIAS_PROPERTY
- See Also:
-
PRIVKEY_PASS_PROPERTY
- See Also:
-
ENDPOINT_PROPERTY
- See Also:
-
PATHSTYLEACCESS_PROPERTY
- See Also:
-
ACCELERATE_MODE_PROPERTY
- See Also:
-
DIRECTDOWNLOAD_PROPERTY_COMPAT
- See Also:
-
DIRECTDOWNLOAD_EXPIRE_PROPERTY_COMPAT
- See Also:
-
METADATA_ADD_USERNAME_PROPERTY
- See Also:
-
MULTIPART_CLEANUP_DISABLED_PROPERTY
Disable automatic abort of old multipart uploads at startup time.- Since:
- 11.1
- See Also:
-
DELIMITER
- See Also:
-
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:
-
MULTIPART_COPY_PART_SIZE_PROPERTY
The Framework property to define the multipart copy part size.- See Also:
-
MULTIPART_COPY_PART_SIZE_DEFAULT
public static final long MULTIPART_COPY_PART_SIZE_DEFAULTThe default value for the multipart copy part size.- Since:
- 2021.11
- See Also:
-
MULTIPART_COPY_THRESHOLD_PROPERTY
The Framework property to define the multipart copy threshold.- Since:
- 2021.11
- See Also:
-
MULTIPART_COPY_THRESHOLD_DEFAULT
public static final long MULTIPART_COPY_THRESHOLD_DEFAULTThe default value for the multipart copy threshold.- Since:
- 2021.11
- See Also:
-
MULTIPART_UPLOAD_THRESHOLD_PROPERTY
The Framework property to define the multipart upload threshold.- Since:
- 2021.11
- See Also:
-
MULTIPART_UPLOAD_THRESHOLD_DEFAULT
public static final long MULTIPART_UPLOAD_THRESHOLD_DEFAULTThe default value for the multipart upload threshold.- Since:
- 2021.11
- See Also:
-
MINIMUM_UPLOAD_PART_SIZE_PROPERTY
The Framework property to define the minimum upload part size.- Since:
- 2021.11
- See Also:
-
MINIMUM_UPLOAD_PART_SIZE_DEFAULT
public static final long MINIMUM_UPLOAD_PART_SIZE_DEFAULTThe default value for the minimum upload part size.- Since:
- 2021.11
- See Also:
-
TRANSFER_MANAGER_THREAD_POOL_SIZE_PROPERTY
The Framework property to define the transfer manager thread pool size.- Since:
- 2021.14
- See Also:
-
TRANSFER_MANAGER_THREAD_POOL_SIZE_DEFAULT
public static final int TRANSFER_MANAGER_THREAD_POOL_SIZE_DEFAULTThe default value for the transfer manager thread pool size.- Since:
- 2021.14
- See Also:
-
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:
-
USER_AGENT_PREFIX_PROPERTY
- Since:
- 2021.15
- See Also:
-
USER_AGENT_SUFFIX_PROPERTY
- Since:
- 2021.15
- See Also:
-
DEFAULT_RETENTION_MODE
public static final com.amazonaws.services.s3.model.ObjectLockRetentionMode DEFAULT_RETENTION_MODE -
cloudFront
-
amazonS3
public final com.amazonaws.services.s3.AmazonS3 amazonS3 -
transferManager
public final com.amazonaws.services.s3.transfer.TransferManager transferManager -
bucketName
-
bucketPrefix
-
useServerSideEncryption
public final boolean useServerSideEncryption -
serverSideKMSKeyID
-
useClientSideEncryption
public final boolean useClientSideEncryption -
metadataAddUsername
public final boolean metadataAddUsername -
s3RetentionEnabled
public final boolean s3RetentionEnabledIs Object Lock feature enabled at s3 level.- Since:
- 2021.13
-
retentionMode
public final com.amazonaws.services.s3.model.ObjectLockRetentionMode retentionModeThe retention mode to use when setting the retention on an object. -
pathStrategy
The path strategy according to the sub directory depth configuration.- Since:
- 2023.7
-
pathSeparatorIsBackslash
protected final boolean pathSeparatorIsBackslashIs backslash "/" the path separator.- Since:
- 2023.7
-
-
Constructor Details
-
S3BlobStoreConfiguration
- Throws:
IOException
-
-
Method Details
-
computeBucketRetentionMode
protected com.amazonaws.services.s3.model.ObjectLockRetentionMode computeBucketRetentionMode()Gets the s3 bucket's object lock default modeObjectLockRetentionMode#GOVERNANCE
orObjectLockRetentionMode#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
-
withNamespace
Returns a copy of the S3BlobStoreConfiguration with a different namespace.- Throws:
IOException
-
close
public void close() -
getMultipartCopyPartSize
public static long getMultipartCopyPartSize()- Since:
- 2021.11
-
getLongProperty
- Since:
- 2021.11
-
parseDirectDownload
protected boolean parseDirectDownload()- Overrides:
parseDirectDownload
in classCloudBlobStoreConfiguration
-
parseDirectDownloadExpire
protected long parseDirectDownloadExpire()- Overrides:
parseDirectDownloadExpire
in classCloudBlobStoreConfiguration
-
getBucketName
-
bucketKey
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
-
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) -
getBucketRegion
-
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.since 11.4, unused -
isS3RetentionEnabled
Deprecated.since 2023.0, unused -
abortOldUploads
protected void abortOldUploads()Aborts uploads that crashed and are older than 1 day. -
abortOldMultipartUploadsInternal
protected void abortOldMultipartUploadsInternal()
-