Skip to content
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

[feature] Object store custom URL (S3) #2574

Closed
daenney opened this issue Jan 26, 2024 · 0 comments · Fixed by #3046
Closed

[feature] Object store custom URL (S3) #2574

daenney opened this issue Jan 26, 2024 · 0 comments · Fixed by #3046
Labels
config Something needs to be made configurable, or there's a config issue enhancement New feature or request storage/media Issues related to how we store and serve media

Comments

@daenney
Copy link
Member

daenney commented Jan 26, 2024

Is your feature request related to a problem ?

For the purpose of being able to use a separate caching proxy, CDN acceleration and other things together with object storage for media and emoji, GoToSocial needs to construct a URL with a different base than the bucket URL/endpoint that it can return to clients.

Imagine for example GoToSocial using an S3 bucket, but the owner wanting the data itself to be accessed through a Cloudfront distribution, a Fastly CDN, or even just their own caching proxy. This can also facilitate migration between different object store backends, as the URL constructed and given to clients by GoToSocial in API responses would not have to change.

Describe the solution you'd like.

We should add a configuration option to GoToSocial that lets people define what the "external" URL should be for their bucket and use that when constructing media references.

It is paramount that this is implemented in such a way that the bucket name is not automatically interpolated into the constructed URL, as that's often not valid when using a CDN distribution. The endpoint should be taken as is, with only the path to the media object within the bucket appended to it.

Describe alternatives you've considered.

NONE

Additional context.

We have a whole host of issues on the issue tracker that are variations of this one. I'm going to link those into here and close them so we have a single tracking issue for this feature request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
config Something needs to be made configurable, or there's a config issue enhancement New feature or request storage/media Issues related to how we store and serve media
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant