Note: This feature is beta and should be used carefully in a staging environment before trying it it production.
It is possible to connect an object storage server like amazon S3 or Minio to ftrack an have it handle all files uploaded or downloaded from the ftrack server location. This is beneficial as it separates file upload/download from the ftrack server and allow scaling out the object storage server separately. The only requirement for the object storage server to work with ftrack is that it is compatible with the Amazon S3 API such as Amazon S3 or Minio.
An object storage server is simpler to setup than the "Self-hosted ftrack server location".
Note: You are responsible of making sure the object storage server remains operational and is backed up properly and have tools in place to restore from backup in case of a server failure.
To configure ftrack to use an object storage server instead of the built in storage the ftrack.ini files should be modified under the DEFAULT section.
The following options are available:
ftrack.server_storage_service - Enable object storage by setting to oss.
ftrack.serveruuid - Prefix for files in the bucket.
ftrack.oss_access_key - Access key
ftrack.oss_access_secret - Access secret
ftrack.oss_bucket - Name of the bucket
ftrack.oss_calling_format - Can be used to force ordinary calling format instead of via subdomain.
ftrack.oss_host - Hostname
ftrack.oss_is_secure - Can be set to 0 to allow non https connections.
ftrack.oss_port - The port
Using Minio with ftrack
ftrack.server_storage_service=oss
ftrack.serveruuid=ftrack-server
ftrack.oss_access_key=minio
ftrack.oss_access_secret=miniostorage
ftrack.oss_bucket=test
ftrack.oss_calling_format=ordinary
ftrack.oss_host=my.minio.server.com
Using Amazon S3 with ftrack
ftrack.server_storage_service=oss
ftrack.serveruuid=ftrack-server
ftrack.oss_access_key=my-key
ftrack.oss_access_secret=my-secret
ftrack.oss_bucket=my-bucket
ftrack.oss_host=s3-eu-west-1.amazonaws.com
Note: To use Amazon S3 with ftrack the bucket must be configured to allow CORS requests.
video transcoding
When using the object storage location, you also need to specify what service should be used to transcode videos. To disable transcoding (useful when testing) set the following configuration:
ftrack.video_conversion_service = custom
And to use ffmpeg to transcode videos set the following:
ftrack.video_conversion_service = ffmpeg
Troubleshooting
The easiest way to debug any errors while configuring object storage is either using the ftrack python API client to do the uploading or drag/drop files in the versions tab in the web interface while having the network tab open. Files will be uploaded and downloaded directly from the object storage, and the ftrack server is only responsible for generating the signed URLs.