🐛 Fix S3 upload not working

This commit is contained in:
Mawoka
2024-06-15 21:47:55 +02:00
parent fe12cf099f
commit ac1072b4fa
4 changed files with 22 additions and 8 deletions
+4 -2
View File
@@ -46,8 +46,10 @@ class Storage:
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)
async def upload(
self, file_name: str, file_data: BinaryIO, mime_type: str | None = None, size: int | None = None
) -> None:
return await self.instance.upload(file=file_data, file_name=file_name, mime_type=mime_type, size=size)
async def delete(self, file_names: [str]) -> None:
return await self.instance.delete(file_names=file_names)
+7 -1
View File
@@ -29,7 +29,13 @@ class LocalStorage:
yield None
# skipcq: PYL-W0613
async def upload(self, file_name: str, file: BinaryIO, mime_type: str | None = None) -> None:
async def upload(
self,
file_name: str,
file: BinaryIO,
size: int | None,
mime_type: str | None = None,
) -> None:
with open(file=os.path.join(self.base_path, file_name), mode="wb") as f:
copyfileobj(file, f)
+2 -3
View File
@@ -5,7 +5,6 @@
import hashlib
import hmac
import sys
from datetime import datetime, timedelta
from typing import Tuple, BinaryIO, Generator
@@ -109,9 +108,9 @@ class S3Storage:
return headers, request_url
# skipcq: PYL-W0613
async def upload(self, file: BinaryIO, file_name: str, mime_type: str | None = "application/octet-stream") -> None:
async def upload(self, file: BinaryIO, file_name: str, size: int | None, mime_type: str | None = None) -> None:
headers, url = self._generate_aws_signature_v4(method="PUT", path=f"/{file_name}")
headers["Content-Length"] = sys.getsizeof(file)
headers["Content-Length"] = size
async with ClientSession() as session, session.put(url, headers=headers, data=file) as resp:
if resp.status == 200:
return None