Spaces:
Running
Running
Update storage.py
Browse files- storage.py +0 -8
storage.py
CHANGED
|
@@ -5,7 +5,6 @@ from datetime import datetime
|
|
| 5 |
from typing import BinaryIO, Optional
|
| 6 |
import uuid
|
| 7 |
|
| 8 |
-
# Backend selection + writable default (matches Dockerfile creating /data/uploads)
|
| 9 |
STORAGE_BACKEND = os.getenv("STORAGE_BACKEND", "local")
|
| 10 |
STORAGE_LOCAL_PATH = os.getenv("STORAGE_LOCAL_PATH", "/data/uploads")
|
| 11 |
|
|
@@ -22,7 +21,6 @@ def init_storage() -> None:
|
|
| 22 |
pass
|
| 23 |
print(f"[Storage] Local storage initialized at {STORAGE_LOCAL_PATH}")
|
| 24 |
elif STORAGE_BACKEND == "s3":
|
| 25 |
-
# keep your s3 init here if needed
|
| 26 |
print("[Storage] S3 backend selected")
|
| 27 |
else:
|
| 28 |
print(f"[Storage] Unknown backend: {STORAGE_BACKEND}")
|
|
@@ -49,27 +47,21 @@ def _local_dest_path(filename: str, folder: str = "") -> Path:
|
|
| 49 |
return p / filename
|
| 50 |
|
| 51 |
def save_file(data: BinaryIO, filename: str, folder: str = "") -> str:
|
| 52 |
-
"""Save arbitrary binary data and return the storage path (local path or key)."""
|
| 53 |
if STORAGE_BACKEND == "local":
|
| 54 |
dest = _local_dest_path(filename, folder=folder)
|
| 55 |
with open(dest, "wb") as f:
|
| 56 |
f.write(data.read())
|
| 57 |
return str(dest)
|
| 58 |
-
# add s3 branch as needed
|
| 59 |
raise NotImplementedError("S3 backend not implemented in this stub")
|
| 60 |
|
| 61 |
def save_audio_file(data: BinaryIO, original_filename: str, folder: str = "audio") -> str:
|
| 62 |
-
"""Convenience wrapper specifically for audio uploads."""
|
| 63 |
if ext_of(original_filename) not in ALLOWED_AUDIO_EXTS:
|
| 64 |
raise ValueError("Unsupported audio format")
|
| 65 |
name = generate_filename(original_filename)
|
| 66 |
return save_file(data, name, folder=folder)
|
| 67 |
|
| 68 |
def upload_and_get_url(user_id: str, raw: bytes, original_filename: str, folder: str = "") -> str:
|
| 69 |
-
"""Save bytes and return a path/URL. For local backend returns absolute path.">
|
| 70 |
-
"""
|
| 71 |
name = generate_filename(original_filename, prefix=user_id)
|
| 72 |
return save_file(BytesIO(raw), name, folder=folder)
|
| 73 |
|
| 74 |
-
# initialize on import (as previous code did)
|
| 75 |
init_storage()
|
|
|
|
| 5 |
from typing import BinaryIO, Optional
|
| 6 |
import uuid
|
| 7 |
|
|
|
|
| 8 |
STORAGE_BACKEND = os.getenv("STORAGE_BACKEND", "local")
|
| 9 |
STORAGE_LOCAL_PATH = os.getenv("STORAGE_LOCAL_PATH", "/data/uploads")
|
| 10 |
|
|
|
|
| 21 |
pass
|
| 22 |
print(f"[Storage] Local storage initialized at {STORAGE_LOCAL_PATH}")
|
| 23 |
elif STORAGE_BACKEND == "s3":
|
|
|
|
| 24 |
print("[Storage] S3 backend selected")
|
| 25 |
else:
|
| 26 |
print(f"[Storage] Unknown backend: {STORAGE_BACKEND}")
|
|
|
|
| 47 |
return p / filename
|
| 48 |
|
| 49 |
def save_file(data: BinaryIO, filename: str, folder: str = "") -> str:
|
|
|
|
| 50 |
if STORAGE_BACKEND == "local":
|
| 51 |
dest = _local_dest_path(filename, folder=folder)
|
| 52 |
with open(dest, "wb") as f:
|
| 53 |
f.write(data.read())
|
| 54 |
return str(dest)
|
|
|
|
| 55 |
raise NotImplementedError("S3 backend not implemented in this stub")
|
| 56 |
|
| 57 |
def save_audio_file(data: BinaryIO, original_filename: str, folder: str = "audio") -> str:
|
|
|
|
| 58 |
if ext_of(original_filename) not in ALLOWED_AUDIO_EXTS:
|
| 59 |
raise ValueError("Unsupported audio format")
|
| 60 |
name = generate_filename(original_filename)
|
| 61 |
return save_file(data, name, folder=folder)
|
| 62 |
|
| 63 |
def upload_and_get_url(user_id: str, raw: bytes, original_filename: str, folder: str = "") -> str:
|
|
|
|
|
|
|
| 64 |
name = generate_filename(original_filename, prefix=user_id)
|
| 65 |
return save_file(BytesIO(raw), name, folder=folder)
|
| 66 |
|
|
|
|
| 67 |
init_storage()
|