이미지 업로더를 React와 Flask로 만들기
포인트
이미지 자체는 외부 스토리지로 관리하고, DB에서는 이미지 URL을 관리.
로컬 개발의 전체 이미지
학습
back_end와 front_end의 git 관리는 분리
제대로 앱을 처음부터 만들어본 적이 없었기 때문에, 이번에 처음 알았는데, heroku의 경우는 root 바로 아래에 heroku를 움직이기 위한 파일을 여러가지 만들 필요가 있고, 거기의 계층을 스타트 로 하면 읽는 path가 로컬의 때와 바뀌어 와, 같은 느낌으로 엉망이 되었습니다. 그래서 미리 git 관리를 나누어 두면 이러한 자체는 미연에 막았다고 생각합니다.
heroku는 파일 시스템을 다룰 수 없다.
이것에 이번 제일 고전한 것이 아닐까 생각합니다만, heroku로 예를 들면 “명령을 실행해 sample.txt 파일을 만든다”라고 하는 것은 전혀 할 수 없게 되어 있습니다.
이번에 제 경우에는
back_end와 front_end의 git 관리는 분리
제대로 앱을 처음부터 만들어본 적이 없었기 때문에, 이번에 처음 알았는데, heroku의 경우는 root 바로 아래에 heroku를 움직이기 위한 파일을 여러가지 만들 필요가 있고, 거기의 계층을 스타트 로 하면 읽는 path가 로컬의 때와 바뀌어 와, 같은 느낌으로 엉망이 되었습니다. 그래서 미리 git 관리를 나누어 두면 이러한 자체는 미연에 막았다고 생각합니다.
heroku는 파일 시스템을 다룰 수 없다.
이것에 이번 제일 고전한 것이 아닐까 생각합니다만, heroku로 예를 들면 “명령을 실행해 sample.txt 파일을 만든다”라고 하는 것은 전혀 할 수 없게 되어 있습니다.
이번에 제 경우에는
이 두 가지로 막혔습니다. 둘 다 heroku에서 git 관리되지 않은 파일을 새로 생성하려고 시도했으며 heroku의 사양에 좋지 않았습니다. 해결 방법은 다음과 같습니다.
1.PIL의 Image를 이용
# bytes形式で読み込み
img = Image.open(file) #FileStorageクラスがなかなか厄介
# メモリでデータを保持する
bio = io.BytesIO()
img.save(bio, format=image_format)
blob.upload_from_string(data=bio.getvalue(), content_type=content_type)
2. 로컬에서 migrate까지 완료한 후 push하여 heroku에서 upgrade만 실행
숨겨진 json 파일을 heroku에서로드하려면 환경 변수에 억지로 넣습니다.
firebase 인증을 위해 json 파일을 읽어야했습니다.
cred = credentials.Certificate('./serviceAccountKey.json')
다만, 이것은 중요한 정보로 git로 관리는 할 수 없기 때문에, heroku상에는 없게 되어 버려, json 파일이 없다고 하는 에러가 발생했습니다. 해결책으로서는 내용의 json을 무리하게 환경 변수에 넣는 것으로 대응했습니다.
export SERVICE_ACCOUNT_KEY='{"type": "service_account","project_id": "...
Reference
이 문제에 관하여(이미지 업로더를 React와 Flask로 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masa_masa_ra/items/1e46632b00fe6ef578eb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)