2017-11-18 37 views
0

私はdjango初心者です。少しドキュメントを入れてdjangoバックエンドを継承しました。私はAWSでホストされている前記サーバーに要求を出しています。要求にファイルを格納するために、S3を使用します。 ファイルアップロードのサイズを制限するdjangoコードに何も見つかりませんでした。ファイルサイズのためにAWSが接続を閉じる可能性があります。1 MBを超えるファイルをアップロードするとAWS broken pipeエラーが発生する

これは私が使用するコードであり、およびファイルの合計サイズが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エンコーディングで、imageはbase64エンコーディングの画像ファイル(' .jpg '、' .png ')です。

そして、これは、合計サイズが1 MB以上ある場合にのみ、私が取得トレースである。先に述べたように

/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')) 

、私は、ファイルサイズにどこかDjangoのコードには限界を発見していません私が見なければならないどこのヒント? AWS S3ポリシーでも何も見つかりませんでした。

+0

MGとは、MBを意味しますか?そして、あなたはdevサーバーか実動Webサーバーですか? – 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に変更すると、このトリックが実行されました。

関連する問題