问题描述
我正在向端点请求,该端点将PDF作为可流二进制返回。该端点使用双向TLS身份验证,因此当我命中该端点时,必须发送客户端证书。为此,我使用https://pypi.org/project/requests-pkcs12/来支持Python请求库。
我想从客户端下载此PDF。 理想情况下,当最终用户单击“下载”时,它会命中端点并直接流传输数据并下载。 我正一步一步地做到这一点。
当前我正在做的是将PDF下载到文件中,然后将该文件发送回客户端。写入文件的速度很慢,我想避免从文件下载到文件的步骤,而只是以某种方式发送回流响应。 有没有一种方法可以使用Python的Request直接流式传输?
#hit the mutual tls authenticated endpoint
response = post(f'{url},stream=True,pkcs12_filename=client_certificate_path,pkcs12_password=client_certificate_passphrase)
#Write the returned data to a file
with open('/tmp/newfile.pdf','wb') as f:
f.write(response.content)
#Send the file back to client with Django's FileResponse
return FileResponse(open('/tmp/newfile.pdf','rb'))
虽然我使用的Django似乎可以用StreamingHttpResponse
很好地解决了这个问题,但由于它不允许我发送客户端证书和受密码保护的客户端证书密钥,因此无法正常工作。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)