2017-11-18 13 views
0

저는 장고 초보자입니다. 나는 장고 백엔드를 약간의 문서와 함께 계승했습니다. AWS에서 호스팅되는 서버에 요청하고 있습니다. 요청에 파일을 저장하기 위해 S3을 사용합니다. 파일 업로드의 크기를 제한하는 django 코드에서 아무 것도 발견하지 못했습니다. 파일 크기 때문에 AWS가 연결을 닫을 수도 있습니다. 1 MB보다 큰 파일을 업로드 할 때 깨진 파이프 오류 AWS가 발생했습니다.

내가 사용하는 코드이며, 오류 아래 나는 파일의 총 크기가 1 이상 MB 때마다 얻을 :.

import requests 
json_dict = {'key_1':'value_1','video':video,'image':,image} 
requests.post('https://api.test.whatever.io/v1/register', json=dict_reg) 

비디오 '('.MOV '비디오 파일 인 AVI ','.mp4 '등)이며, base64 인코딩을 사용하는 이미지 파일 ('.jpg ','.png ')입니다. , 앞서 언급 한 바와 같이

/usr/local/lib/python2.7/dist- 
packages/requests/packages/urllib3/util/ssl_.py:132: InsecurePlatfo 
rmWarning: A true SSLContext object is not available. This prevents urllib3 
from configuring SSL 
appropriately and may cause certain SSL connections to fail. You can upgrade 
to a newer version of Python to solve this. For more information, see 
https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings 
InsecurePlatformWarningTraceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 110, in 
post 
return request('post', url, data=data, json=json, **kwargs) 
File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 56, in 
request 
return session.request(method=method, url=url, **kwargs) 
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 
488, in request 
resp = self.send(prep, **send_kwargs) 
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 
609, in send 
r = adapter.send(request, **kwargs) 
File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 
473, in send 
raise ConnectionError(err, request=request) 
requests.exceptions.ConnectionError: ('Connection aborted.', error(32, 
'Broken pipe')) 

, 나는 어디 장고 코드 파일 크기에 제한에서 발견되지 않은 :

그리고 이것은 전체 크기가 1 MB 이상의 경우에만, 내가 얻을 추적하다 내가 어디에서보고 있어야하는지 어떤 암시라도? AWS S3 정책에서 아무 것도 찾지 못했습니다.

+0

MG라고하면 MB를 의미합니까? 그리고 당신은 dev 서버 또는 프로덕션 웹 서버에 있습니까? – bryan60

+0

예, 죄송합니다, MB. 두 가지 모두에서 발생합니다 (프로덕션 및 개발 자). 덕분에 –

답변

1

HTTP 요청을 리버스 프록시 할 Nginx가 있다고 가정합니다. 그렇다면이 link을 확인하십시오.

또한이 nginx 구성되었다 결국 장고

FILE_UPLOAD_MAX_MEMORY_SIZE 
+0

. 가변적 인 FILE_UPLOAD_MAX_MEMORY_SIZE가 있지만 코드에서 아무 것도 호출되지 않습니다. 나는 너의 연결을 검사 할 것이다. 감사. –

+0

당신은 오신 것을 환영합니다. 코드에서 직접 호출되지는 않지만 Django가 업로드를 관리하는 데 사용됩니다. 더 높은 값을 설정해도 Nginx 프록시를 건너 뛸 때 시간 초과를 방지 할 수 없습니다. – kmcodes

+0

좋은 지적. 실제로 nginx.conf 파일에 문제가있었습니다 (아래 참조). –

1

에 업로드 핸들러의 설정 값은 아래에 설정된 값을 참조. 파일의 변수 client_max_body_size1M에서 2M으로 변경하는 것은 놀라운 일입니다.