코딩캠프/AI 웹개발 취업캠프

[AI 웹개발 취업캠프] 74Day - 프로젝트 25일차

고랑E 2023. 11. 4. 00:03
728x90

오늘은 이전에 만들어 두었던 파일 업로드 브랜치로 가서 최신 커밋까지 rebase를 시켜서 다음 기능을 만들어보자

 

git switch feature/file-upload 로 해당 브랜치로 이동하고

 

git rebase develop 해서 rebase 해준다.!!!

 

그리고 프론트 인원의 탈주.. 1주일남았는데.. ㅎㅎ

 

 

이제 남은 기능들이

 

 

요 4개다 아마도..

 

위에 3개는 다 파일업로드 쪽이라 기본적인 코드는 다 똑같다

 

main.py

 

# 상단에 user_model 추가
from BE.crud import create_user, get_user, verify_password, get_user_info, update_user_info, get_models, get_my_models, create_model, get_model, user_image, email_code, check_email_code, user_image, user_model
@app.post("/models/{modelId}/model")
async def update_file_model(modelId: int, file: UploadFile, db: Session = Depends(get_db)):
    file_path = await file.read()

    s3_file_name = 'images/' + file.filename
    s3_url = upload_to_s3(file_path, s3_file_name)
    file.filename = s3_url

    user_model(db, user_id = userId, image = file.filename)
    return JSONResponse(content={"message": "프로필 이미지가 수정되었습니다."}, status_code=200)

 

 

crud.py

 

def user_model(db: Session, model_id: int, model: str):
    user = db.query(User).filter(User.id == user_id).first()
    user.image = image
    db.commit()
    return user

 

으로 임시로 코드를 복붙해주고!!

 

이제 각 파일에서 수정해야될 부분을 수정해보자

 

main.py 에서 images 폴더가 아닌 models 폴더에 업로드 해줘야 하니 수정하고 문구도 수정해주자

 

@app.post("/models/{modelId}/model")
async def update_file_model(modelId: int, file: UploadFile, db: Session = Depends(get_db)):
    file_path = await file.read()

    s3_file_name = 'models/' + file.filename
    s3_url = upload_to_s3(file_path, s3_file_name)
    file.filename = s3_url

    user_model(db, model_id = modelId, model = file.filename)
    return JSONResponse(content={"message": "모델 파일 업로드가 완료되었습니다."}, status_code=200)

 

 

crud.py 에서도 User 테이블이 아닌 Model 테이블이니까 이부분을 수정해주고 file 컬럼에 S3 주소가 들어가야 돼니 수정해주자

 

def user_model(db: Session, model_id: int, model: str):
    db_model = db.query(Model).filter(Model.id == model_id).first()
    db_model.file = model
    db.commit()
    return db_model

 

이렇게 해주고 테스트를 해보면

 

 

 

정상적으로 업로드 되고 db에도 S3 주소가 들어갔다.

 

 

 

본 후기는 정보통신산업진흥원(NIPA)에서 주관하는 <AI 서비스완성! AI+웹개발 취업캠프 - 프론트엔드&백엔드> 과정 학습/프로젝트/과제 기록으로 작성되었습니다.