diff --git a/storage_service/config/config_virus_checker.py b/storage_service/config/config_virus_checker.py index dfa4e54..45f5f45 100644 --- a/storage_service/config/config_virus_checker.py +++ b/storage_service/config/config_virus_checker.py @@ -6,6 +6,4 @@ import os def get_virus_checker_api_key(): load_dotenv() - return { - "api_key": os.environ.get("VIRUS_CHECKER_API_KEY") - } + return {"api_key": os.environ.get("VIRUS_CHECKER_API_KEY")} diff --git a/storage_service/controller/__init__.py b/storage_service/controller/__init__.py index 73a712b..0a27577 100644 --- a/storage_service/controller/__init__.py +++ b/storage_service/controller/__init__.py @@ -1,6 +1,6 @@ from storage_service.config.config_allowed_origins import get_allowed_origins -from storage_service.controller.storage_controller import s3_router from storage_service.controller.health_checker_controller import health_router +from storage_service.controller.storage_controller import s3_router from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware diff --git a/storage_service/controller/health_checker_controller.py b/storage_service/controller/health_checker_controller.py index 616b800..438deb3 100644 --- a/storage_service/controller/health_checker_controller.py +++ b/storage_service/controller/health_checker_controller.py @@ -1,9 +1,9 @@ from fastapi_utils.cbv import cbv - from fastapi_utils.inferring_router import InferringRouter health_router = InferringRouter() + @cbv(health_router) class HealthCheckerController: @health_router.get("/health", status_code=200) diff --git a/storage_service/controller/storage_controller.py b/storage_service/controller/storage_controller.py index ccfdb54..2496b95 100644 --- a/storage_service/controller/storage_controller.py +++ b/storage_service/controller/storage_controller.py @@ -45,9 +45,7 @@ class StorageController: @s3_router.delete("/file/", status_code=204) def delete_file(self, username: str, file_postfix: str): - return self.storage_service.delete_file( - file_name_hash(username, file_postfix) - ) + return self.storage_service.delete_file(file_name_hash(username, file_postfix)) @s3_router.post("/file/process", status_code=200) def process_file( @@ -56,5 +54,3 @@ class StorageController: file_postfix: Annotated[str, Body(embed=True)], ): self.queue.enqueue(storage_file_worker, username, file_postfix) - - diff --git a/storage_service/depends/depend_virus_checker_service.py b/storage_service/depends/depend_virus_checker_service.py index 7fba733..26a9594 100644 --- a/storage_service/depends/depend_virus_checker_service.py +++ b/storage_service/depends/depend_virus_checker_service.py @@ -1,13 +1,18 @@ -import os -from functools import cache - -from storage_service.config.config_virus_checker import get_virus_checker_api_key -from storage_service.service.virus_checker.virus_total_service import VirusTotalService -from storage_service.service.virus_checker.virus_checker_service import VirusCheckerService +from storage_service.config.config_virus_checker import ( + get_virus_checker_api_key, +) +from storage_service.service.virus_checker.virus_checker_service import ( + VirusCheckerService, +) +from storage_service.service.virus_checker.virus_total_service import ( + VirusTotalService, +) +from storage_service.utils.enums.virus_checker_type import VirusCheckerType from dotenv import load_dotenv -from storage_service.utils.enums.virus_checker_type import VirusCheckerType +import os +from functools import cache @cache diff --git a/storage_service/service/storage/amazon_s3_service.py b/storage_service/service/storage/amazon_s3_service.py index 59625d9..dea0402 100644 --- a/storage_service/service/storage/amazon_s3_service.py +++ b/storage_service/service/storage/amazon_s3_service.py @@ -1,6 +1,8 @@ from __future__ import annotations -from storage_service.depends.depend_virus_checker_service import dependency_virus_checker_service +from storage_service.depends.depend_virus_checker_service import ( + dependency_virus_checker_service, +) from storage_service.service.storage.storage_service import StorageService from storage_service.utils.enums.file_type import FileType from storage_service.utils.file_handler import FILE_HANDLER @@ -12,7 +14,6 @@ from typing import Any class AmazonS3Service(StorageService): - virus_checker_service = dependency_virus_checker_service() def __init__(self, **kwargs): @@ -33,7 +34,7 @@ class AmazonS3Service(StorageService): ) def get_temp_upload_link( - self, file_name, file_type: FileType + self, file_name, file_type: FileType ) -> dict[str, str | Any]: return { "presigned_url": self._get_presigned_write_url(file_name, file_type), @@ -73,7 +74,9 @@ class AmazonS3Service(StorageService): def _get_presigned_read_url(self, file_name) -> str | None: result = self.s3.list_objects(Bucket=self.bucket_name, Prefix=file_name) - if "Contents" in result and file_name in map(lambda x: x["Key"], result["Contents"]): + if "Contents" in result and file_name in map( + lambda x: x["Key"], result["Contents"] + ): return self.s3.generate_presigned_url( "get_object", Params={"Bucket": self.bucket_name, "Key": file_name}, diff --git a/storage_service/service/virus_checker/virus_total_service.py b/storage_service/service/virus_checker/virus_total_service.py index 3078e27..47eed43 100644 --- a/storage_service/service/virus_checker/virus_total_service.py +++ b/storage_service/service/virus_checker/virus_total_service.py @@ -1,7 +1,10 @@ -from io import BytesIO +from storage_service.service.virus_checker.virus_checker_service import ( + VirusCheckerService, +) + from virustotal_python import Virustotal -from storage_service.service.virus_checker.virus_checker_service import VirusCheckerService +from io import BytesIO class VirusTotalService(VirusCheckerService): @@ -26,10 +29,10 @@ class VirusTotalService(VirusCheckerService): @staticmethod def _is_valid_file(file_stats: dict) -> bool: - if 'malicious' in file_stats and file_stats['malicious'] > 0: + if "malicious" in file_stats and file_stats["malicious"] > 0: return False - if 'suspicious' in file_stats and file_stats['suspicious'] > 0: + if "suspicious" in file_stats and file_stats["suspicious"] > 0: return False return True diff --git a/storage_service/utils/enums/virus_checker_type.py b/storage_service/utils/enums/virus_checker_type.py index 077e95b..83d7c9b 100644 --- a/storage_service/utils/enums/virus_checker_type.py +++ b/storage_service/utils/enums/virus_checker_type.py @@ -2,4 +2,4 @@ from enum import Enum class VirusCheckerType(Enum): - TOTAL_VIRUS = "total_virus" \ No newline at end of file + TOTAL_VIRUS = "total_virus"