fix-obj-2
All checks were successful
Deploy on Push / deploy (push) Successful in 31s

This commit is contained in:
Untone 2024-05-06 17:11:01 +03:00
parent 7353676000
commit be3d6f7f76

24
main.py
View File

@ -1,7 +1,7 @@
import os import os
import tempfile import tempfile
import uuid import uuid
import aiobotocore.session from aiobotocore.session import get_session
import asyncio import asyncio
from starlette.applications import Starlette from starlette.applications import Starlette
from starlette.responses import JSONResponse from starlette.responses import JSONResponse
@ -10,7 +10,6 @@ from starlette.requests import Request
from auth import login_required from auth import login_required
from logger import root_logger as logger from logger import root_logger as logger
from settings import ( from settings import (
PORT, PORT,
STORJ_ACCESS_KEY, STORJ_ACCESS_KEY,
@ -20,18 +19,14 @@ from settings import (
STORJ_END_POINT, STORJ_END_POINT,
) )
async def create_s3_client(): async def create_s3_client():
return ( session = get_session()
aiobotocore.session.get_session() return session.create_client(
.create_client(
"s3", "s3",
aws_access_key_id=STORJ_ACCESS_KEY, aws_access_key_id=STORJ_ACCESS_KEY,
aws_secret_access_key=STORJ_SECRET_KEY, aws_secret_access_key=STORJ_SECRET_KEY,
endpoint_url=STORJ_END_POINT, endpoint_url=STORJ_END_POINT,
) )
)
@login_required @login_required
async def upload_handler(request: Request): async def upload_handler(request: Request):
@ -47,12 +42,11 @@ async def upload_handler(request: Request):
key = str(uuid.uuid4()) + file_extension key = str(uuid.uuid4()) + file_extension
logger.debug(f"Generated file key: {key}") logger.debug(f"Generated file key: {key}")
s3 = await create_s3_client() async with create_s3_client() as s3:
bucket_resource = s3.Bucket(STORJ_BUCKET_NAME)
logger.debug("Starting file upload to S3") logger.debug("Starting file upload to S3")
content = await file.read() content = await file.read()
await bucket_resource.put_object( resp = await s3.put_object(
Bucket=STORJ_BUCKET_NAME,
Key=key, Key=key,
Body=content, Body=content,
ContentType=file.content_type, ContentType=file.content_type,
@ -63,16 +57,10 @@ async def upload_handler(request: Request):
logger.info(f"File uploaded successfully: {url}") logger.info(f"File uploaded successfully: {url}")
return JSONResponse({"url": url, "originalFilename": file.filename}) return JSONResponse({"url": url, "originalFilename": file.filename})
async def home(request: Request): async def home(request: Request):
logger.debug("Home route called") logger.debug("Home route called")
return JSONResponse({"message": "Hello World!"}) return JSONResponse({"message": "Hello World!"})
routes = [ routes = [
Route("/", home, methods=["GET"]), Route("/", home, methods=["GET"]),
Route("/", upload_handler, methods=["POST"]), Route("/", upload_handler, methods=["POST"]),