2017-01-24 12 views
0

ユーザーがUIのダウンロードボタンをクリックすると、共有上にあるファイルをダウンロードしたいと思います。それは1GBのデータでうまく動作します。大きなファイルだと失敗します。それは何のエラーも与えないが、私はクロムの左下隅にダウンロードするスピナーが1GBの後に停止することがわかります。 ここに私のpythonコードpythonとangularjsファイルのダウンロード

filename = os.path.basename(pathToFile) 
     chunk_size = 8192 
     content_type = mime.from_file(pathToFile) 
     response = StreamingHttpResponse(FileWrapper(open(pathToFile), chunk_size), 
             content_type=content_type) 
     response['Content-Length'] = os.path.getsize(pathToFile) 
     response['Content-Disposition'] = 'attachment; filename="%s"' % filename 

がここにあるjavascriptのコード

$scope.downloadFile = function(path) { 
     return "/download_file?file=" + encodeURIComponent("somePath"); 

任意の提案ですか?

+0

問題は他のブラウザでも発生しますか? –

+0

'curl'や' wget'などのコマンドラインツールを使ってファイルをダウンロードしてみてください。問題が何であるかを確認することができます。ファイルシステムの最大ファイルサイズは1GBです。 – mhawke

+0

はい、他のブラウザでも同じ問題です。私たちはuwsgiとnginxを使っています。私はそこに私は1GBのみを可能にするデフォルトの設定を考えています。私はproxy_max_temp_file_size 5120mでnginx confを追加しようとしました。そのトリックはしなかった。 – user2406718

答えて

0

以下のパラメータをnginx.confファイルに追加して問題を解決しました。

location /<Your download api path> {   
     uwsgi_pass django; 
     uwsgi_read_timeout 300s; 

     uwsgi_buffering off; 
     proxy_set_header Connection ''; 
     proxy_http_version 1.1; 
     chunked_transfer_encoding on; 
     proxy_cache off; 

    } 
関連する問題