ユーザーが次のようなリンクをクリックできるようにしたいと思います。
<a href="/download?file=123">download</a>
Pyramid1.2.7アプリにこのようなビューを処理させる
@view_config(route_name='download')
def download(request):
file_id = request.GET['file']
filename = get_filename(file_id)
headers = request.response.headers
headers['Content-Description'] = 'File Transfer'
headers['Content-Type'] = 'application/force-download'
headers['Accept-Ranges'] = 'bytes'
headers['X-Accel-Redirect'] = ("/path/" + filename + ".pdf")
return request.response
そして私のnginx構成は次のようになります
location /path/ {
internal;
root /opt/tmp;
}
これはすべて機能しますが、ブラウザにPDFがダウンロードされていることを表示する代わりに、ブラウザに大量のPDFガベージが表示されます。
ブラウザに正しい動作をさせるためにピラミッドビューを設定するにはどうすればよいですか?