Class S3SyncProcessor
java.lang.Object
org.craftercms.deployer.impl.processors.AbstractDeploymentProcessor
org.craftercms.deployer.impl.processors.AbstractMainDeploymentProcessor
org.craftercms.deployer.impl.processors.aws.AbstractS3Processor
org.craftercms.deployer.impl.processors.aws.S3SyncProcessor
- All Implemented Interfaces:
DeploymentProcessor,InitializableByConfigBean,org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanNameAware
Implementation of
DeploymentProcessor that syncs files to an AWS S3 Bucket- Since:
- 3.1.0
- Author:
- joseross
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected StringThe extension used for blob files in the repositorystatic final Stringprotected booleanIndicates if blob files should not be uploaded to S3protected StringURL for the local git repositoryFields inherited from class org.craftercms.deployer.impl.processors.aws.AbstractS3Processor
builderConfigurer, CONFIG_KEY_URL, DELIMITER, logger, s3Url, threadPoolTaskExecutorFields inherited from class org.craftercms.deployer.impl.processors.AbstractMainDeploymentProcessor
FAIL_DEPLOYMENT_CONFIG_KEY, failDeploymentOnFailureFields inherited from class org.craftercms.deployer.impl.processors.AbstractDeploymentProcessor
alwaysRun, env, excludeFiles, includeFiles, JUMPING_TO_PARAM_NAME, jumpTo, label, name, siteName, targetId -
Constructor Summary
ConstructorsConstructorDescriptionS3SyncProcessor(org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor threadPoolTaskExecutor, String localRepoUrl, String blobExtension) -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddeleteFiles(software.amazon.awssdk.services.s3.S3Client client, List<String> files) Performs the delete of the given files.protected voiddoInit(org.apache.commons.configuration2.Configuration config) Allows extending classes perform any custom initializationprotected ChangeSetdoMainProcess(Deployment deployment, ProcessorExecution execution, ChangeSet filteredChangeSet, ChangeSet originalChangeSet) protected booleanshouldIncludeFile(String file) protected voiduploadFiles(software.amazon.awssdk.services.s3.S3AsyncClient client, List<String> paths) Performs the upload of the given files.Methods inherited from class org.craftercms.deployer.impl.processors.aws.AbstractS3Processor
buildAsyncClient, buildClient, buildTransferManager, doDestroy, getBucket, getS3BaseKey, getS3KeyMethods inherited from class org.craftercms.deployer.impl.processors.AbstractMainDeploymentProcessor
doExecute, failDeploymentOnProcessorFailure, init, shouldExecuteMethods inherited from class org.craftercms.deployer.impl.processors.AbstractDeploymentProcessor
destroy, execute, getDeploymentParam, getFilteredChangeSet, isJumpToActive, isPostDeployment, setBeanName, setEnv, setSiteName, setTargetId, startJumpTo, supportsMode
-
Field Details
-
CONFIG_KEY_IGNORE_BLOBS
- See Also:
-
localRepoUrl
URL for the local git repository -
blobExtension
The extension used for blob files in the repository -
ignoreBlobs
protected boolean ignoreBlobsIndicates if blob files should not be uploaded to S3
-
-
Constructor Details
-
S3SyncProcessor
@ConstructorProperties({"threadPoolTaskExecutor","localRepoUrl","blobExtension"}) public S3SyncProcessor(org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor threadPoolTaskExecutor, String localRepoUrl, String blobExtension)
-
-
Method Details
-
doInit
protected void doInit(org.apache.commons.configuration2.Configuration config) throws org.craftercms.commons.config.ConfigurationException Description copied from class:AbstractS3ProcessorAllows extending classes perform any custom initialization- Overrides:
doInitin classAbstractS3Processor- Parameters:
config- the bean's configuration- Throws:
org.craftercms.commons.config.ConfigurationException- if there's configuration related exception
-
shouldIncludeFile
- Overrides:
shouldIncludeFilein classAbstractDeploymentProcessor
-
doMainProcess
protected ChangeSet doMainProcess(Deployment deployment, ProcessorExecution execution, ChangeSet filteredChangeSet, ChangeSet originalChangeSet) throws DeployerException Performs the actual work of processing the files in theChangeSet, it is also possible to return a newChangeSetto be used for the following processors in the pipeline- Specified by:
doMainProcessin classAbstractMainDeploymentProcessor- Parameters:
deployment- the current deploymentexecution- the current executionfilteredChangeSet- the filtered change set (as returned byAbstractDeploymentProcessor.getFilteredChangeSet(ChangeSet))originalChangeSet- the original change set (as returned by the previous processors in the pipeline)- Returns:
- a new
ChangeSetor null - Throws:
DeployerException- if there is any error processing theChangeSet
-
uploadFiles
protected void uploadFiles(software.amazon.awssdk.services.s3.S3AsyncClient client, List<String> paths) throws DeployerException Performs the upload of the given files.- Parameters:
client- AWS S3 async clientpaths- list of files to upload- Throws:
DeployerException- if there is any error reading or uploading the files
-
deleteFiles
protected void deleteFiles(software.amazon.awssdk.services.s3.S3Client client, List<String> files) throws DeployerException Performs the delete of the given files.- Parameters:
client- AWS S3 clientfiles- list of files to delete- Throws:
DeployerException- if there is any error deleting the files
-