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

46
main.py
View File

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