개발 Q&A

제목 모바일에서 큰 용량의 데이터 전송 시 문제
카테고리 서버
글쓴이 주말생각 작성시각 2021/03/31 17:31:42
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 8185   RSS

안드로이드 앱에서 용량이 큰 pdf을 서버로 보내주는 기능이 있고 서버에서는 해당 pdf파일과 서버에 저장될 파일의 위치 및 사용자의 아이디를 받습니다.

서버에서 제한한 파일 사이즈보다 크면 업로드가 되지 않고 사이즈초과 메세지를 앱으로 보내는 기능을 만들었고 잘 작동합니다.

그리고 사이즈 초과 체크 전에 앱에서 아이디를 db에 있는 아이디가 맞는지 확인하고 없으면 파일을 업로드하지 않고 아이디가 없다는 메세지를 보냅니다.

그런데 매우 큰 파일을 업로드 할 시에 아이디가 없다는 메세지를 앱에 보내줍니다.

DB에는 해당 아이디가 엄연히 존재하고요.

url로 디버깅을 하려고 해도 파일은 어떠한 문자열로 보내주는지 알 수 없어서 디버깅도 쉽지가 않네요.

 

중간에 서버와의 통신이 끊어질 수도 있는 건가요?

 다음글 개발에서 용어 casting (2)
 이전글 smtp 메일 발송 (1)

댓글

변종원(웅파) / 2021/03/31 23:20:44 / 추천 0

php.ini의 허용전송량을 초과하면 끊어질 수도 있습니다. (https://conory.com/blog/44009 주요 3가지 값이 있습니다)

파일 크기 체크는 이중으로 하셔야 합니다. 앱에서 체크해서 먼저 올리지않도록 하는게 서버 리소스를 절약하는 방법입니다.

우회하여 서버에 전송하는 경우를 방지하기 위해 서버에서도 체크를 해야하구요.

테러보이 / 2021/04/01 09:40:56 / 추천 0

안드로이드 앱의 경우 로그 캣을 통하여 디버깅이 가능합니다.

대용량 문제라면 청크 업로드도 고려해보심이 좋을듯합니다.

주말생각 / 2021/04/01 13:31:19 / 추천 0

지금 의심이 드는 점이 max_input_time 입니다.

max_input_time의 값이 30으로 되어 있는데, 서버에 업로드 할 떼, 30초 이상이 걸리더라고요. 그래서 파일하고 같이 전송해주는 아이디값도 못 받아서 아이디 값이 없으니 앱으로부터 아이디가 없다는 메시지를 보내는 것 같습니다.

주말생각 / 2021/04/01 15:48:30 / 추천 0

max_input_time의 문제도 아니었네요.

용량 제한의 문제도 아닌 것 같고, 대용량일 때, 왜 용량 체크하고 용량 불가 메세지를 보내주지 않고 서버와의 통신이 끊기는 지 모르겠네요.

변종원(웅파) / 2021/04/02 10:08:26 / 추천 0
주말생각/ 로그확인 해보셨어요?
주말생각 / 2021/04/02 11:17:43 / 추천 0
로그까지 확인은 해보지 않았는데, 해결은 했습니다. 이제까지 서버 설정을 마스터가 아니라 로컬만 변경했는데, 마스터까지 변경을 해야 하더라고요. 마스터까지 변경하니 웅파님 말씀대로 php.ini의 허용전송량 초과로 서버와 앱의 통신이 끊어진 것이었습니다.