-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for S3 storage and CDN for project files #324
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
martastain
added
the
type: feature
Adding something new and exciting to the product
label
Aug 21, 2024
martastain
changed the title
CDN Support for project files
Support for S3 storage and CDN for project files
Sep 20, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
Project files (such as reviewables and comment attachments) can now be stored in S3-compatible object storage. Storage configurations are flexible and can be overridden on a per-project basis. On cloud instances, Ayon can also be configured to use the Ynput Cloud CDN for file delivery.
While the current implementation allows for site-wide S3 integration via environment variables, future updates will extend functionality to allow per-project overrides.
Environment Configuration
You can set up S3 storage using the following environment variables:
In this configuration, the specified S3 bucket will be used instead of the default local storage at /storage/server/projects.
The
AYON_DEFAULT_PROJECT_STORAGE_ROOT
replaces the previousproject_storage_dir
directive and is applicable to bothlocal
ands3
storage types. The directory structure beneath the root remains identical, making it easy to migrate existing files to S3.Additionally, the
{instance_id}
placeholder is automatically replaced with the current instance ID, supporting scenarios involving multiple Ayon instances sharing a single bucket. If theS3_
environment variables are not provided, the system will attempt to resolve the appropriate S3 settings based on the AWS access key provided.CDN Support
If you're using a CDN, you can specify an HTTP endpoint for file delivery via the
AYON_DEFAULT_PROJECT_STORAGE_CDN_RESOLVER
environment variable.This endpoint is responsible for resolving the current project and file ID into a valid file URL.
If no CDN resolver is specified, Ayon will fallback to generating a signed URL from the S3 storage and redirect users to that link when a file is requested.
Compatibility
This feature has been tested with: