데이터 저장을 위한 데이터베이스를 NoSQL인 mongoDB를 사용한다.
로컬의 사진파일을 서버에 저장하기 위해 mongoDB 의 Gridfs 라이브러리를 사용할려 하였다.
테스트 코드로 업로드한 사진 파일이 잘 저장되는지 확인하기 위해 아래와 같은 코드를 작성하여 테스트를 진행하였다.
@app.route("/upload", methods=['POST'])
def upload():
## file upload ##
img = request.files['image']
## GridFs를 통해 파일을 분할하여 DB에 저장하게 된다
fs = gridfs.GridFS(db)
fs.put(img, filename='user1')
return jsonify({'msg': '저장에 성공했습니다.'})
위 사진과 같이 mongoDB에 저장되는 것을 확인하고 위의 라이브러리를 프로젝트에 사용할 수 있을거라고 생각 했지만 POST시 클라이언트에서 전달되는 데이터가 이미지파일뿐 아니라 다른 변수데이터도 같이 저장되어야 하는 이슈가 발생하여 위의 라이브러리를 사용할 수 있을지 모르겠다...
시간대비 효율이 떨어지는 하루처럼 느껴진다...
참고) mongoDB Gridfs관련
https://newbetuts.com/60630359-retrieving-and-displaying-image-from-gridfs-python-flask-mongodb