我们有两台服务器(面向客户端和后端数据库),我们希望在这两台服务器之间传输PDF。这是数据流:
1-3和5都很好,但问题是#4。
我们目前正在使用Flask请求进行API调用,并且可以轻松地传输文本和.csv,但PDF等二进制文件无法正常工作。
不,我没有任何代码,所以请放轻松。只是寻找可能遇到过这个问题的人的建议。
答案 0 :(得分:1)
正如你所说,你没有代码,这很好,但我只能提出一些建议。
我不确定你是如何发送你的文件,但我假设你正在使用pythons open
函数。
确保您以字节形式读取文件(例如open('<pdf-file>','rb')
)
将文件剪切成块并将其作为一个文件发送,这样就不会冻结或卡住。
尝试较小的PDF文件,如果这样可以尝试建议#2。
使用线程,您可以使用它们进行多任务处理。
拥有一个下载服务器,这可以节省内存并可能节省带宽。此外,它还允许您从烧瓶中跳过PDF发回。
如果您不需要,请不要使用PDF文件。
使用库为您完成。
希望这有帮助!
答案 1 :(得分:1)
我想分享我的解决方案,但要归功于@CoolqB的答案。关键是包括'rb'
以正确读取二进制文件并包含codecs
库。以下是最终的代码片段:
客户请求:
response = requests.get('https://www.mywebsite.com/_api_call')
服务器响应:
f = codecs.open(file_name, 'rb').read()
return f
客户端处理:
with codecs.open(file_to_write, 'w') as f:
f.write(response.content)
f.close()
一切都与世界是对的。