@@ -3,33 +3,33 @@ Rights in Data-General Clause 52.227-14, Alt. IV (DEC 2007). Copyright 2022 The
33
44# Object Storage Overview
55
6- By default, OpenMPF will write markup files, JSON output objects, and extracted artifacts to directories in
7- ` $MPF_HOME/share ` . For multi-node deployments, ` $MPF_HOME/share ` points to a directory on a network share.
6+ By default, OpenMPF will write markup files, JSON output objects, and extracted artifacts to directories in
7+ ` $MPF_HOME/share ` . For multi-node deployments, ` $MPF_HOME/share ` points to a directory on a network share.
88Most often, the share is managed by the Network File System (NFS) protocol, although using NFS is not a requirement.
99
10- Alternatively, OpenMPF supports writing these files to an object storage server. That may be desirable in cloud
10+ Alternatively, OpenMPF supports writing these files to an object storage server. That may be desirable in cloud
1111deployments to better support integration between systems, and/or to consolidate file storage as a cost-saving measure.
1212
13- When a file cannot be uploaded to the server, the Workflow Manager will fall back to storing it in ` $MPF_HOME/share ` .
14- If and when a failure occurs, the JSON output object will contain a descriptive message in the ` jobWarnings ` field.
13+ When a file cannot be uploaded to the server, the Workflow Manager will fall back to storing it in ` $MPF_HOME/share ` .
14+ If and when a failure occurs, the JSON output object will contain a descriptive message in the ` jobWarnings ` field.
1515If the job completes without other issues, the final status will be ` COMPLETE_WITH_WARNINGS ` .
1616
1717# Common Object Storage Properties
1818
19- The following system properties are common to the various types of object storage solutions that
19+ The following system properties are common to the various types of object storage solutions that
2020OpenMPF supports:
2121
2222- ` http.object.storage.upload.retry.count `
23- - The number of times OpenMPF will attempt to upload an object to the storage server after the
23+ - The number of times OpenMPF will attempt to upload an object to the storage server after the
2424 first failed attempt.
2525 - When using S3, the AWS SDK's default retry strategy is used.
26- - When using NGINX, exponential back off is used between retry attempts. There is a 500ms
26+ - When using NGINX, exponential back off is used between retry attempts. There is a 500ms
2727 delay before the first retry. The delay doubles for each subsequent retry.
2828
2929
3030# S3 Object Storage
31- OpenMPF supports downloading media and uploading results to an S3 compatible
32- server such as Ceph or Minio. The use of S3 is controlled through the
31+ OpenMPF supports downloading media and uploading results to an S3 compatible
32+ server such as Ceph or Minio. The use of S3 is controlled through the
3333following job properties and system properties:
3434
3535- ` S3_ACCESS_KEY ` job property or ` s3.access.key ` system property
@@ -39,23 +39,23 @@ following job properties and system properties:
3939- ` S3_SECRET_KEY ` job property or ` s3.secret.key ` system property
4040 - The secret key that will be used when downloading and uploading to S3.
4141- ` S3_SESSION_TOKEN ` job property or ` s3.session.token ` system property
42- - Only required when the S3 bucket is configured to require a session key.
42+ - Only required when the S3 bucket is configured to require a session key.
4343 This generally occurs when multi-factor authentication is required.
4444 - OpenMPF does not handle generating the session key.
4545- ` S3_USE_VIRTUAL_HOST ` job property or ` s3.use.virtual.host ` system property
46- - When false or not provided,
47- [ path-style requests] ( https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#path-style-access )
46+ - When false or not provided,
47+ [ path-style requests] ( https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#path-style-access )
4848 will be used.
49- - When true,
50- [ virtual hosted-style] ( https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#virtual-hosted-style-access )
49+ - When true,
50+ [ virtual hosted-style] ( https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#virtual-hosted-style-access )
5151 access will be used.
5252 - When true, ` S3_HOST ` must also be provided.
53- - The CNAME configuration described
54- [ here] ( https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#VirtualHostingCustomURLs )
53+ - The CNAME configuration described
54+ [ here] ( https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#VirtualHostingCustomURLs )
5555 is not supported.
5656- ` S3_HOST ` job property or ` s3.host ` system property
5757 - The host of the S3 server without the bucket name.
58- - If ` S3_RESULTS_BUCKET=https://bucket.s3.amazonaws.com ` , ` S3_HOST ` should be
58+ - If ` S3_RESULTS_BUCKET=https://bucket.s3.amazonaws.com ` , ` S3_HOST ` should be
5959 set to ` s3.amazonaws.com `
6060 - Only used when ` S3_USE_VIRTUAL_HOST=true ` .
6161- ` S3_RESULTS_BUCKET ` job property or ` s3.results.bucket ` system property
@@ -71,18 +71,20 @@ following job properties and system properties:
7171 - If you want to run a job where some media is in S3 and some is hosted elsewhere,
7272 you can set ` S3_UPLOAD_ONLY ` to ` true ` as a media specific property on the media that is hosted elsewhere.
7373- ` S3_REGION ` job property or ` s3.region ` system property
74- - The [ S3 region] ( https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints )
75- to use when accessing S3. For example: ` us-east-1 `
74+ - The [ S3 region] ( https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints )
75+ to use when accessing S3. For example: ` us-east-1 `
7676 - Some S3 compatible servers like Minio ignore this.
77+ - ` S3_UPLOAD_OBJECT_KEY_PREFIX ` job property or ` s3.upload.object.key.prefix ` system property
78+ - Specifies a prefix to prepend to object keys when uploading to S3.
7779
7880
7981# Custom NGINX HTTP Object Storage
8082
81- OpenMPF supports a custom NGINX object storage server solution. If you're interested, please contact us.
83+ OpenMPF supports a custom NGINX object storage server solution. If you're interested, please contact us.
8284We can make the server-side code available upon request.
8385
84- For those who choose to run their own custom NGINX object storage server, please configure OpenMPF by setting
85- the ` http.object.storage.nginx.service.uri ` property to the URI of the NGINX server.
86+ For those who choose to run their own custom NGINX object storage server, please configure OpenMPF by setting
87+ the ` http.object.storage.nginx.service.uri ` property to the URI of the NGINX server.
8688The following system properties are unique to the custom NGINX object storage solution:
8789
8890- ` http.object.storage.nginx.service.uri `
@@ -96,7 +98,7 @@ The following system properties are unique to the custom NGINX object storage so
9698 - The chunk size, in bytes, that is used to upload objects to the storage server.
9799 - In general, the default value is sufficient.
98100
99- The NGINX object storage server will determine the sha256 hash for the file once it's been uploaded.
101+ The NGINX object storage server will determine the sha256 hash for the file once it's been uploaded.
100102It then uses that hash to name the file and returns the file URI to OpenMPF.
101103
102104
0 commit comments