Add model auto-download and English logging

This commit is contained in:
Dymas
2026-06-06 12:47:59 +02:00
parent d8b92d5025
commit 0c7f93d067
17 changed files with 204 additions and 77 deletions
+9 -9
View File
@@ -51,11 +51,11 @@ class FileValidator:
if not any(filename.lower().endswith(ext.lower()) for ext in self.allowed_extensions):
# Логирование попытки загрузки файла с неразрешенным расширением
file_extension = os.path.splitext(filename)[1]
logger.warning("Попытка загрузки файла с неразрешенным расширением '%s'. "
"Имя файла: %s. Разрешенные расширения: %s", file_extension, filename, ", ".join(self.allowed_extensions))
logger.warning("Attempt to upload a file with disallowed extension '%s'. "
"Filename: %s. Allowed extensions: %s", file_extension, filename, ", ".join(self.allowed_extensions))
raise ValidationError(f"Расширение файла не разрешено. "
f"Разрешенные расширения: {', '.join(self.allowed_extensions)}")
raise ValidationError(f"File extension is not allowed. "
f"Allowed extensions: {', '.join(self.allowed_extensions)}")
def validate_file_by_path(self, file_path: str, filename: str) -> bool:
"""
@@ -78,18 +78,18 @@ class FileValidator:
file_size = os.path.getsize(file_path)
max_size_bytes = self.max_file_size_mb * 1024 * 1024
if file_size > max_size_bytes:
raise ValidationError(f"Размер файла ({file_size / (1024*1024):.2f} МБ) "
f"превышает максимально допустимый ({self.max_file_size_mb} МБ)")
raise ValidationError(f"File size ({file_size / (1024*1024):.2f} MB) "
f"exceeds the maximum allowed size ({self.max_file_size_mb} MB)")
# Проверка MIME-типа
try:
mime_type = magic.from_file(file_path, mime=True)
if mime_type not in self.allowed_mime_types:
raise ValidationError(f"MIME-тип файла ({mime_type}) не разрешен. "
f"Разрешенные MIME-типы: {', '.join(self.allowed_mime_types)}")
raise ValidationError(f"File MIME type ({mime_type}) is not allowed. "
f"Allowed MIME types: {', '.join(self.allowed_mime_types)}")
except ValidationError:
raise
except Exception as e:
logger.warning("Не удалось определить MIME-тип файла: %s", e)
logger.warning("Failed to determine file MIME type: %s", e)
return True