Skip to content

Commit ba68c04

Browse files
committed
Merge branch 'backup-memory' into 'main'
Backup: Fix high memory usage See merge request reportcreator/reportcreator!877
2 parents 9dd6dd2 + 2ab2caa commit ba68c04

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

api/src/reportcreator_api/utils/crypto/base.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ def _verify_auth_tag(self):
344344

345345
try:
346346
# Read everything to update the internal auth tag calculation
347-
while _ := self.read():
347+
while _ := self.read(size=settings.FILE_UPLOAD_MAX_MEMORY_SIZE):
348348
pass
349349

350350
self.cipher.verify(self.auth_tag_buffer)
@@ -353,9 +353,12 @@ def _verify_auth_tag(self):
353353
raise CryptoError('Cannot decrypt data: Auth tag verification failed') from ex
354354

355355
def close(self):
356+
if self.closed:
357+
return
356358
try:
357359
self._verify_auth_tag()
358360
finally:
361+
self.fileobj.close()
359362
super().close()
360363

361364

api/src/reportcreator_api/utils/storages.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from pathlib import Path
22

3+
from django.conf import settings
34
from django.core.files.storage import FileSystemStorage, InMemoryStorage
45
from storages.backends.s3 import S3Storage
56

@@ -36,6 +37,8 @@ class EncryptedFileSystemStorage(EncryptedStorageMixin, UnencryptedFileSystemSto
3637

3738

3839
class UnencryptedS3Storage(S3Storage):
40+
max_memory_size = settings.FILE_UPLOAD_MAX_MEMORY_SIZE
41+
3942
def __init__(self, access_key=None, secret_key=None, security_token=None, bucket_name=None, endpoint_url=None, location=None, **kwargs) -> None:
4043
super().__init__(
4144
access_key=access_key,

0 commit comments

Comments
 (0)