🐛 Fixed storage
This commit is contained in:
@@ -42,13 +42,8 @@ class Storage:
|
||||
else:
|
||||
raise NotImplementedError(f"Backend {backend} not implemented")
|
||||
|
||||
async def download(self, file_name: str) -> Generator | None:
|
||||
"""
|
||||
No support for s3 since it doesn't make sense relaying the traffic through this backend
|
||||
:param file_name:
|
||||
:return:
|
||||
"""
|
||||
yield self.instance.download(file_name)
|
||||
def download(self, file_name: str) -> Generator | None:
|
||||
return self.instance.download(file_name)
|
||||
|
||||
async def upload(self, file_name: str, file_data: BinaryIO, mime_type: str | None = None) -> None:
|
||||
return await self.instance.upload(file=file_data, file_name=file_name, mime_type=mime_type)
|
||||
|
||||
@@ -24,7 +24,11 @@ class LocalStorage:
|
||||
async def download(self, file_name: str) -> Generator | None:
|
||||
try:
|
||||
async with aiofiles.open(file=os.path.join(self.base_path, file_name), mode="rb") as f:
|
||||
yield f.read()
|
||||
while True:
|
||||
chunk = await f.read(8192)
|
||||
if not chunk:
|
||||
break
|
||||
yield chunk
|
||||
except FileNotFoundError:
|
||||
yield None
|
||||
|
||||
@@ -43,6 +47,6 @@ class LocalStorage:
|
||||
|
||||
def size(self, file_name: str) -> int | None:
|
||||
try:
|
||||
return os.stat(os.path.join(self.base_path, file_name))
|
||||
return os.stat(os.path.join(self.base_path, file_name)).st_size
|
||||
except FileNotFoundError:
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user