🐛 Fixed storage

This commit is contained in:
Mawoka
2023-06-18 10:09:15 +02:00
parent 5f35adeec7
commit cebc43fc3b
5 changed files with 15 additions and 14 deletions
+2 -7
View File
@@ -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)
+6 -2
View File
@@ -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