28 lines
939 B
Python
28 lines
939 B
Python
import os
|
|
from pathlib import Path
|
|
from app.storage.storage_provider import StorageProvider
|
|
|
|
class LocalStorageProvider(StorageProvider):
|
|
def __init__(self, base_upload_dir: str = "uploads"):
|
|
self.base_dir = Path(base_upload_dir)
|
|
self.base_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
def save_file(self, file_bytes: bytes, filename: str, folder: str) -> str:
|
|
target_dir = self.base_dir / folder
|
|
target_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
target_file = target_dir / filename
|
|
target_file.write_bytes(file_bytes)
|
|
|
|
# Return path relative to project root
|
|
return str(target_file)
|
|
|
|
def delete_file(self, storage_path: str) -> bool:
|
|
p = Path(storage_path)
|
|
if p.exists() and p.is_file():
|
|
try:
|
|
os.remove(p)
|
|
return True
|
|
except OSError:
|
|
return False
|
|
return False
|