AWS S3 Distribution Configuration

This page documents the configuration for Opencast module distribution-service-aws-s3. This
configuration is only required on the presentation node, and only if you are using Amazon S3 and/or Cloudfront for
distributing media to end users.

Amazon User Configuration

Configuration of Amazon users is beyond the scope of this documentation, instead we suggest referring to
Amazon's documentation.
You will, however, require to set up proper credentials by either:

A free Amazon account will work for small scale testing, but be aware that S3
distribution can cost you a lot of money very quickly. Be aware of how much data and how many requests you are making,
and be sure to set alarms to
notify you of cost overruns.

Amazon Service Configuration

The development and testing it is generally safe to allow the Opencast AWS S3 Distribution service to create the S3
bucket for you. It will create the bucket per its configuration, with public read-only access to the files, and no
versioning. For production use we suggest using Amazon CloudFront, which requires additional configuration.

Amazon CloudFront

Amazon CloudFront provides an optional way to better handle distributing your media to end users. While fully
configuring CloudFront is outside the scope of this documentation, we wish to note that this does affect one of the keys
described below. Please ensure you use the correct distribution base format depending on which service you are using!

Opencast Service Configuration

The Opencast AWS S3 Distribution service has five configuration keys, which can be found in the
org.opencastproject.distribution.aws.s3.AwsS3DistributionServiceImpl.cfg configuration file.

Key name

Value

Example

org.opencastproject.distribution.aws.s3.distribution.enable

True to enable S3 distribution, false otherwise

true

org.opencastproject.distribution.aws.s3.region

The AWS region to set

us-west-2

org.opencastproject.distribution.aws.s3.bucket

The S3 bucket name

example-org-dist

org.opencastproject.distribution.aws.s3.distribution.base

Where the S3 files are available from. This value can be derived from the bucket and region values, or is set by CloudFront.

http://s3-us-west-2.amazonaws.com/example-org-dist, or DOMAIN_NAME.cloudfront.net

org.opencastproject.distribution.aws.s3.access.id

Your access ID

20 alphanumeric characters

org.opencastproject.distribution.aws.s3.secret.key

Your secret key

40 characters

If org.opencastproject.distribution.aws.s3.access.id and org.opencastproject.distribution.aws.s3.secret.key are
not explicitly provided, search for credentials will be performed in the order specified by the
Default Credentials Provider Chain.

Using S3 Distribution

Amazon S3 distribution is already included in the default Opencast workflows, however it must first be enabled. The
schedule-and-upload.xml and publish.xml workflow configuration files both contain lines containing the string
"Remove this line if you wish to publish to AWS S3". Both of these lines must be removed before publishing to AWS S3
will function correctly.

If you wish to use AWS S3 publishing with your own custom workflow, you must add the publish-aws workflow operation to
your workflow. The operation documentation can be found here.

Publishing to multiple distribution services

Currently we do not support publication to multiple distribution services simultaneously. This means that whichever
workflow operation is last in the workflow will be the final publication.

Using this handler in custom workflows

If your workflow contains both publish-engage and publish-aws, in that order, and without a
conditional you would have publication files stored both locally and in AWS. This is
likely not what you want, so protect your workflow operations appropriately. If you really do need these files stored
in both places (for example, in cases where you need to make the files available immediately, and only push to AWS in
some cases) then remember to add a retract-engage in between the
publication operations. Note that if this step is omitted the files will remain available locally, but will not be
used. Of further note, if you retract after publication to AWS then your workflow will not be available to users.
To summarize, this table presents a subset of the various situations that are possible