🐛 Fix S3 upload not working

This commit is contained in:
Mawoka
2024-06-16 12:28:54 +02:00
parent 7e5acf82c6
commit a686aca841
3 changed files with 90 additions and 82 deletions
+1 -1
View File
@@ -124,7 +124,7 @@ async def upload_file(file: UploadFile = File(), user: User = Depends(get_curren
if user.storage_used > settings.free_storage_limit:
raise HTTPException(status_code=409, detail="Storage limit reached")
file_id = uuid4()
file_size = len(await file.read())
file_size = 0
file_obj = StorageItem(
id=file_id,
uploaded_at=datetime.now(),
+9 -1
View File
@@ -110,7 +110,15 @@ class S3Storage:
# skipcq: PYL-W0613
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"] = str(size)
file_size = 0
while True:
chunk = file.read(1024)
file_size += len(chunk)
if not chunk:
file.seek(0)
break
headers["Content-Length"] = str(file_size)
async with ClientSession() as session, session.put(url, headers=headers, data=file) as resp:
if resp.status == 200:
return None