Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

By default, Fedora persists its OCFL Storage Root on the local filesystem. This guide details how a Fedora installation can optionally be configured to instead persist its OCFL Storage Root to Amazon S3.

The Amazon S3 storage implementation stores OCFL objects directly in an Amazon S3 bucket. Optionally, a key prefix can be used to partition the repository to use only a portion of its bucket, allowing you to store multiple OCFL repositories in the same bucket or non-OCFL content.

Requirements

S3 Bucket

At the minimum, permissions on the bucket must allow the authorized client to perform the following actions:

  • s3:PutObject
  • s3:GetObject
  • s3:DeleteObject
  • s3:ListBucket
  • s3:AbortMultipartUpload

Database

The OCFL library used by Fedora uses the same database as that used by Fedora for locking and caching OCFL object details. This is necessary to solve eventual consistency and concurrency issues. Like the other database tables used by Fedora, all information in the database serves as a cache and will be automatically repopulated if deleted.

NOTE: Currently, the only supported databases in the underlying OCFL library are PostgreSQL and H2; therefore, in order to use Fedora's S3 feature, Fedora's must be configured to either use PostgreSQL (production) or H2 (test).

Configuration

AWS Credential Configuration

The credentials used to interact with S3 must be available to Fedora per Amazon's guidelines.

Fedora Configuration

The following configuration items are passed to the Fedora application on startup via system properties.

The use of Fedora's S3 feature requires a configuration that selects the storage type to be "ocfl-s3":

Code Block
-Dfcrepo.storage=ocfl-s3

The AWS region in which the pre-existing S3 bucket can be found is configured as follows. The region codes found in the table provided by Amazon's documentation are all available, such as "us-east-2", "eu-west-1", etc.

Code Block
-Dfcrepo.aws.region=<bucket-region-code>

The AWS S3 bucket name is provided to Fedora as follows:

Code Block
-Dfcrepo.ocfl.s3.bucket=<bucket-name>

Optionally, a prefix can be provided to partition the S3 bucket so that Fedora uses only a portion of the bucket.

Code Block
-Dfcrepo.ocfl.s3.prefix=<some-prefix>