Add support for a modifying the chunk storage location

This commit is contained in:
Tom Hacohen 2020-07-13 17:08:36 +03:00
parent c9463cadba
commit a7268443ca
2 changed files with 13 additions and 0 deletions

View File

@ -61,6 +61,13 @@ class AppSettings:
return self.import_from_str(func)
return None
@cached_property
def CHUNK_PATH_FUNC(self): # pylint: disable=invalid-name
func = self._setting("CHUNK_PATH_FUNC", None)
if func is not None:
return self.import_from_str(func)
return None
@cached_property
def CHALLENGE_VALID_SECONDS(self): # pylint: disable=invalid-name
return self._setting("CHALLENGE_VALID_SECONDS", 60)

View File

@ -21,6 +21,8 @@ from django.db.models import Q
from django.utils.functional import cached_property
from django.utils.crypto import get_random_string
from . import app_settings
UidValidator = RegexValidator(regex=r'^[a-zA-Z0-9\-_]{20,}$', message='Not a valid UID')
@ -79,6 +81,10 @@ class CollectionItem(models.Model):
def chunk_directory_path(instance, filename):
custom_func = app_settings.CHUNK_PATH_FUNC
if custom_func is not None:
return custom_func(instance, filename)
item = instance.item
col = item.collection
user_id = col.owner.id