Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions config/modules/replicate.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ plugin.single.org.dspace.ctask.replicate.ObjectStore = \
#org.dspace.ctask.replicate.store.DuraCloudObjectStore - Replicate content to DuraCloud (requires 'duracloud.cfg' file to be setup)
#org.dspace.ctask.replicate.store.LocalObjectStore - Replicate content to another location (folder) on local file system
#org.dspace.ctask.replicate.store.MountableObjectStore - Replicate content to a mounted external file system (e.g. NFS mount)
#org.dspace.ctask.replicate.store.S3ObjectStore - Replicate content to an S3 bucket

### AIP Object Storage Settings ###

Expand Down Expand Up @@ -117,3 +118,25 @@ replicate.consumer.queue = replication
# Template for Checkm manifest
replicate.checkm.template = id|md5|csm|length

### S3 Replicate configuration ###
# Used only when org.dspace.ctask.replicate.store.S3ObjectStore is configured
### Replicate authentication
# AWS S3 AssumeRole ARN for cross-account access
replicate.s3.assume-role-arn =

# AWS S3 AssumeRole External ID for enhanced security (highly recommended)
# This helps prevent "confused deputy" attacks in cross-account scenarios
replicate.s3.assume-role-external-id =

# When using AWS IAM role please only configure the AWS region
# AWS S3 Region name
replicate.s3.region-name =

# AWS S3 Bucket name
replicate.s3.bucket-name =

## Legacy support
## Avoid using the following configuration
## This has been introduced to provide support to legacy bucket
#replicate.s3.access-key =
#replicate.s3.secret-key =
40 changes: 40 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@
<bagit-support.version>1.1.0</bagit-support.version>
<jaxb-api.version>4.0.5</jaxb-api.version>
<jaxb-runtime.version>4.0.9</jaxb-runtime.version>
<!-- AWS SDK v2 version: MUST match the version used by dspace-api ${dspace.version}
(dspace-api declares software.amazon.awssdk:s3), otherwise the
maven-enforcer-plugin DependencyConvergence rule will fail. -->
<aws.sdk.version>2.43.2</aws.sdk.version>
<!-- Replication Task Suite requires Java 17 because DSpace 9 requires it -->
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Expand Down Expand Up @@ -414,6 +418,42 @@
<scope>compile</scope>
</dependency>

<!-- AWS SDK v2 artifacts needed by S3ObjectStore which are NOT declared by dspace-api
(dspace-api only brings in "s3"). Scope is 'provided' because these JARs are expected
to be present in the DSpace installation's lib/ at runtime. -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>sts</artifactId>
<version>${aws.sdk.version}</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>software.amazon.awssdk</groupId>
<artifactId>netty-nio-client</artifactId>
</exclusion>
<exclusion>
<groupId>software.amazon.awssdk</groupId>
<artifactId>apache-client</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3-transfer-manager</artifactId>
<version>${aws.sdk.version}</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>software.amazon.awssdk</groupId>
<artifactId>netty-nio-client</artifactId>
</exclusion>
<exclusion>
<groupId>software.amazon.awssdk</groupId>
<artifactId>apache-client</artifactId>
</exclusion>
</exclusions>
</dependency>

<!-- DuraCloud dependencies (used for replication to/from DuraCloud).
We only need to specify a dependency on the 'storeclient', as it already
declares dependencies on DuraCloud 'common' and 'storeprovider' APIs. -->
Expand Down
Loading
Loading