mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 20:29:06 +00:00
server: revert change on storage folder
This commit is contained in:
@@ -18,14 +18,14 @@ class Storage:
|
|||||||
cls._registry[name] = kclass
|
cls._registry[name] = kclass
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_instance(cls, name: str, settings_prefix: str = "", folder: str = ""):
|
def get_instance(cls, name: str, settings_prefix: str = ""):
|
||||||
if name not in cls._registry:
|
if name not in cls._registry:
|
||||||
module_name = f"reflector.storage.storage_{name}"
|
module_name = f"reflector.storage.storage_{name}"
|
||||||
importlib.import_module(module_name)
|
importlib.import_module(module_name)
|
||||||
|
|
||||||
# gather specific configuration for the processor
|
# gather specific configuration for the processor
|
||||||
# search `TRANSCRIPT_BACKEND_XXX_YYY`, push to constructor as `backend_xxx_yyy`
|
# search `TRANSCRIPT_BACKEND_XXX_YYY`, push to constructor as `backend_xxx_yyy`
|
||||||
config = {"folder": folder}
|
config = {}
|
||||||
name_upper = name.upper()
|
name_upper = name.upper()
|
||||||
config_prefix = f"{settings_prefix}{name_upper}_"
|
config_prefix = f"{settings_prefix}{name_upper}_"
|
||||||
for key, value in settings:
|
for key, value in settings:
|
||||||
@@ -35,10 +35,6 @@ class Storage:
|
|||||||
|
|
||||||
return cls._registry[name](**config)
|
return cls._registry[name](**config)
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.folder = ""
|
|
||||||
super().__init__()
|
|
||||||
|
|
||||||
async def put_file(self, filename: str, data: bytes) -> FileResult:
|
async def put_file(self, filename: str, data: bytes) -> FileResult:
|
||||||
return await self._put_file(filename, data)
|
return await self._put_file(filename, data)
|
||||||
|
|
||||||
@@ -50,3 +46,9 @@ class Storage:
|
|||||||
|
|
||||||
async def _delete_file(self, filename: str):
|
async def _delete_file(self, filename: str):
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
|
async def get_file_url(self, filename: str) -> str:
|
||||||
|
return await self._get_file_url(filename)
|
||||||
|
|
||||||
|
async def _get_file_url(self, filename: str) -> str:
|
||||||
|
raise NotImplementedError
|
||||||
|
|||||||
@@ -22,14 +22,9 @@ class AwsStorage(Storage):
|
|||||||
|
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.aws_bucket_name = aws_bucket_name
|
self.aws_bucket_name = aws_bucket_name
|
||||||
folder = ""
|
self.aws_folder = ""
|
||||||
if "/" in aws_bucket_name:
|
if "/" in aws_bucket_name:
|
||||||
self.aws_bucket_name, folder = aws_bucket_name.split("/", 1)
|
self.aws_bucket_name, self.aws_folder = aws_bucket_name.split("/", 1)
|
||||||
if folder:
|
|
||||||
if not self.folder:
|
|
||||||
self.folder = folder
|
|
||||||
else:
|
|
||||||
self.folder = f"{self.folder}/{folder}"
|
|
||||||
self.session = aioboto3.Session(
|
self.session = aioboto3.Session(
|
||||||
aws_access_key_id=aws_access_key_id,
|
aws_access_key_id=aws_access_key_id,
|
||||||
aws_secret_access_key=aws_secret_access_key,
|
aws_secret_access_key=aws_secret_access_key,
|
||||||
@@ -39,7 +34,7 @@ class AwsStorage(Storage):
|
|||||||
|
|
||||||
async def _put_file(self, filename: str, data: bytes) -> FileResult:
|
async def _put_file(self, filename: str, data: bytes) -> FileResult:
|
||||||
bucket = self.aws_bucket_name
|
bucket = self.aws_bucket_name
|
||||||
folder = self.folder
|
folder = self.aws_folder
|
||||||
logger.info(f"Uploading {filename} to S3 {bucket}/{folder}")
|
logger.info(f"Uploading {filename} to S3 {bucket}/{folder}")
|
||||||
s3filename = f"{folder}/{filename}" if folder else filename
|
s3filename = f"{folder}/{filename}" if folder else filename
|
||||||
async with self.session.client("s3") as client:
|
async with self.session.client("s3") as client:
|
||||||
@@ -49,9 +44,9 @@ class AwsStorage(Storage):
|
|||||||
Body=data,
|
Body=data,
|
||||||
)
|
)
|
||||||
|
|
||||||
async def get_file_url(self, filename: str) -> FileResult:
|
async def _get_file_url(self, filename: str) -> FileResult:
|
||||||
bucket = self.aws_bucket_name
|
bucket = self.aws_bucket_name
|
||||||
folder = self.folder
|
folder = self.aws_folder
|
||||||
s3filename = f"{folder}/{filename}" if folder else filename
|
s3filename = f"{folder}/{filename}" if folder else filename
|
||||||
async with self.session.client("s3") as client:
|
async with self.session.client("s3") as client:
|
||||||
presigned_url = await client.generate_presigned_url(
|
presigned_url = await client.generate_presigned_url(
|
||||||
@@ -60,14 +55,11 @@ class AwsStorage(Storage):
|
|||||||
ExpiresIn=3600,
|
ExpiresIn=3600,
|
||||||
)
|
)
|
||||||
|
|
||||||
return FileResult(
|
return presigned_url
|
||||||
filename=filename,
|
|
||||||
url=presigned_url,
|
|
||||||
)
|
|
||||||
|
|
||||||
async def _delete_file(self, filename: str):
|
async def _delete_file(self, filename: str):
|
||||||
bucket = self.aws_bucket_name
|
bucket = self.aws_bucket_name
|
||||||
folder = self.folder
|
folder = self.aws_folder
|
||||||
logger.info(f"Deleting {filename} from S3 {bucket}/{folder}")
|
logger.info(f"Deleting {filename} from S3 {bucket}/{folder}")
|
||||||
s3filename = f"{folder}/{filename}" if folder else filename
|
s3filename = f"{folder}/{filename}" if folder else filename
|
||||||
async with self.session.client("s3") as client:
|
async with self.session.client("s3") as client:
|
||||||
|
|||||||
Reference in New Issue
Block a user