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