반응형
Firebase Hosting 무료 버전에서 파일 업로드를 테스트해볼 때 삽질을 많이 했던 것 같다.(웹 쪽 부분도 오랜만에 보니 너무 생소한 것 같고...)
나중에 똑같은 삽질을 안 하기 위해 정리해 둔다.
체크포인트만 간략하게 정리하면 다음과 같다.
1. 일단 html 쪽에서 Form 부분에 enctype을 안 주면 form-data 형태로 안 넘어가므로 받을 수가 없다.
<form id="form1" name="form1" method="post" action="{$URL}" enctype="multipart/form-data">
<input type="file" id="uploadfile" name="uploadfile" />
<input type="submit" />
</form>
2. 공식 문서에서 req.rawBody에 제대로 오는지 확인할 것(없다면 req.body에 해당 파일 내용이 오는지 확인)
공식문서 링크 : https://cloud.google.com/functions/docs/writing/http?hl=ko
공식문서에서 보면 마지막에 busboy.end(req.rawBody); 적혀 있는데 이 부분 때문에 애를 많이 먹었다. 실제 파일 내용이 들어오는 부분이 req.rawBody가 아니라면 'file'이벤트를 받을 수가 없으므로 req.rawBody를 확인해보고 없다면 req.body로 넘겨보면 해결된다.
3. 넉넉히 한 9MB 정도로 제한을 잡아야 함(요청이 10MB 넘어가면 차단됨....)
반응형