WeblateOrg / weblate

Web based localization tool with tight version control integration.
https://weblate.org/
GNU General Public License v3.0
4.58k stars 1.02k forks source link

Support object store besides file store for persistancy in Weblate #2984

Open rhofer opened 5 years ago

rhofer commented 5 years ago

In order to separate application layer from persistancy layer in Openshift, the persistant volume clame in Openshift should not be used (files store). Instead, an object store as AWS S3 should be used, as django-storages would allow.

Question: is Weblate already supporting this today?

nijel commented 5 years ago

The problem is that we don't only need generic storage layer as django-storages is, but we rely on filesystem on which we can store working copies of the VCS repositories and files to execute external tools (eg. git, gettext). What could work here is focusing on Git only and storing the Git objects in a database and perform the operations on that or using temporary working copies. This not something we can do in forseable future. The other part is fulltext index, which will be gone in the 4.0 release, see https://github.com/WeblateOrg/weblate/issues/2825.

For user uploaded content, it might be possible to use django-storages. It would certainly work for screenshots, but with fonts it would be again tricky, because the the rendering backend supports only loading fonts from a local directory. There seems to be a solution in C to load fonts directly, but that doesn't work out of box in Python as it touches too low level parts which are not exposed in the Python bindings.

TLDR: It's probably not impossible, but would need major rewrite and it's certainly not on roadmap for now.

nijel commented 1 year ago

Summary of what we store in the DATA_DIR and possible solutions:

Other affected features of storage change: