🐛 Fix S3 upload not working
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user