diff options
author | Andrey Mekin <anmekin@gmail.com> | 2016-10-05 17:32:16 +0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-05 17:32:16 +0500 |
commit | 2bf581c446aeadbe572d6a02729b529c1d187a43 (patch) | |
tree | 1c69009b93e3b2e504e05e6aa778ce1e7ba3e57e | |
parent | b2907055db8037ef0701fc10b5a0fb865fd82afd (diff) | |
parent | 8fa6d6a11e122834d13d4a81f4973e0f390be56b (diff) | |
download | omaha-server-2bf581c446aeadbe572d6a02729b529c1d187a43.zip omaha-server-2bf581c446aeadbe572d6a02729b529c1d187a43.tar.gz omaha-server-2bf581c446aeadbe572d6a02729b529c1d187a43.tar.bz2 |
Merge pull request #224 from anmekin/fix/file_field_size
Reduce filenames
-rw-r--r-- | omaha_server/crash/models.py | 18 | ||||
-rw-r--r-- | omaha_server/feedback/models.py | 10 |
2 files changed, 22 insertions, 6 deletions
diff --git a/omaha_server/crash/models.py b/omaha_server/crash/models.py index 434b26a..d7a4dd0 100644 --- a/omaha_server/crash/models.py +++ b/omaha_server/crash/models.py @@ -33,16 +33,24 @@ from omaha.models import BaseModel from crash.managers import CrashManager, SymbolsManager -def crash_upload_to(obj, filename): +def upload_to(directory, obj, filename): now = timezone.now() - return os.path.join(*map(str, ['minidump', now.year, now.month, + max_length = 255 + path = os.path.join(*map(str, [directory, now.year, now.month, now.day, uuid.uuid4(), filename])) + if len(path) > max_length: + name, ext = os.path.splitext(path) + ext_length = len(ext) + path = name[:max_length-ext_length] + ext + return path + + +def crash_upload_to(obj, filename): + return upload_to('minidump', obj, filename) def crash_archive_upload_to(obj, filename): - now = timezone.now() - return os.path.join(*map(str, ['minidump_archive', now.year, now.month, - now.day, uuid.uuid4(), filename])) + return upload_to('minidump_archive', obj, filename) class Crash(BaseModel): diff --git a/omaha_server/feedback/models.py b/omaha_server/feedback/models.py index 7c8713c..bb2ab2e 100644 --- a/omaha_server/feedback/models.py +++ b/omaha_server/feedback/models.py @@ -31,10 +31,18 @@ from jsonfield import JSONField from omaha.models import BaseModel from feedback.managers import FeedbackManager + def upload_to(directory, obj, filename): now = timezone.now() - return os.path.join(*map(str, [directory, now.year, now.month, + max_length = 100 + path = os.path.join(*map(str, [directory, now.year, now.month, now.day, uuid.uuid4(), filename])) + if len(path) > max_length: + name, ext = os.path.splitext(path) + ext_length = len(ext) + path = name[:max_length-ext_length] + ext + return path + def screenshot_upload_to(obj, filename): return upload_to('screenshot', obj, filename) |