From aa49f266894b44d7ea7249d545b2771c423d7eb1 Mon Sep 17 00:00:00 2001 From: Untone Date: Mon, 6 May 2024 14:29:27 +0300 Subject: [PATCH] await-fix --- main.py | 50 ++++++++++++++++++++++++-------------------------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/main.py b/main.py index 4c628ec..9b2fef9 100644 --- a/main.py +++ b/main.py @@ -1,3 +1,4 @@ +import logging import os import tempfile import uuid @@ -7,7 +8,6 @@ from starlette.responses import JSONResponse from starlette.routing import Route from starlette.requests import Request from auth import login_required -from logger import root_logger as logger from settings import ( PORT, @@ -26,46 +26,45 @@ async def create_s3_client(): endpoint_url=STORJ_END_POINT, ) - @login_required async def upload_handler(request: Request): - logger.debug("Received upload request") + logging.debug("Received upload request") form = await request.form() file = form.get("file") if file is None: - logger.error("No file uploaded") + logging.error("No file uploaded") return JSONResponse({"error": "No file uploaded"}, status_code=400) file_name, file_extension = os.path.splitext(file.filename) key = str(uuid.uuid4()) + file_extension - logger.debug(f"Generated file key: {key}") + logging.debug(f"Generated file key: {key}") - async with create_s3_client() as s3: - with tempfile.NamedTemporaryFile() as tmp_file: - while True: - chunk = await file.read(8192) - if not chunk: - break - tmp_file.write(chunk) - tmp_file.flush() + s3 = await create_s3_client() + with tempfile.NamedTemporaryFile() as tmp_file: + while True: + chunk = await file.read(8192) + if not chunk: + break + tmp_file.write(chunk) + tmp_file.flush() - logger.debug("Starting file upload to S3") - await s3.upload_file( - Filename=tmp_file.name, - Bucket=STORJ_BUCKET_NAME, - Key=key, - ExtraArgs={"ContentType": file.content_type}, - ) - logger.debug("File upload completed") + logging.debug("Starting file upload to S3") + await s3.upload_file( + Filename=tmp_file.name, + Bucket=STORJ_BUCKET_NAME, + Key=key, + ExtraArgs={"ContentType": file.content_type}, + ) + logging.debug("File upload completed") - url = f"http://{CDN_DOMAIN}/{key}" - logger.info(f"File uploaded successfully: {url}") - return JSONResponse({"url": url, "originalFilename": file.filename}) + url = f"http://{CDN_DOMAIN}/{key}" + logging.info(f"File uploaded successfully: {url}") + return JSONResponse({"url": url, "originalFilename": file.filename}) async def home(request: Request): - logger.debug("Home route called") + logging.debug("Home route called") return JSONResponse({"message": "Hello World!"}) @@ -75,4 +74,3 @@ routes = [ ] app = Starlette(debug=True, routes=routes) -