Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中的服务器之间传输PDF文件_Python_Api_Pdf - Fatal编程技术网

在python中的服务器之间传输PDF文件

在python中的服务器之间传输PDF文件,python,api,pdf,Python,Api,Pdf,我们有两个服务器(面向客户端和后端数据库),我们希望在它们之间传输PDF。以下是数据流: 用户从网站请求PDF 站点向客户端服务器发送请求 客户端服务器从后端服务器请求PDF(不同的IP) 后端服务器将PDF发送到客户端服务器 客户端服务器将PDF发送到网站 1-3和5都很好,但4是问题所在 我们目前正在使用Flask请求进行API调用,可以轻松地传输文本和.csv,但PDF等二进制文件不起作用 不,我没有任何代码,所以对我放轻松。只是想从可能遇到此问题的人那里寻求建议。正如您所说,您没有代码,

我们有两个服务器(面向客户端和后端数据库),我们希望在它们之间传输PDF。以下是数据流:

  • 用户从网站请求PDF
  • 站点向客户端服务器发送请求
  • 客户端服务器从后端服务器请求PDF(不同的IP)
  • 后端服务器将PDF发送到客户端服务器
  • 客户端服务器将PDF发送到网站
  • 1-3和5都很好,但4是问题所在

    我们目前正在使用Flask请求进行API调用,可以轻松地传输文本和.csv,但PDF等二进制文件不起作用


    不,我没有任何代码,所以对我放轻松。只是想从可能遇到此问题的人那里寻求建议。

    正如您所说,您没有代码,这很好,但我只能给出一些建议

    我不确定您是如何发送文件的,但我假设您使用的是pythons
    open
    函数

  • 确保您正在以字节形式读取文件(例如,
    open(“”,'rb')

  • 将文件切成块并作为一个文件发送,这样它就不会冻结或卡住

  • 尝试较小的PDF文件,如果这确实有效,请尝试建议2

  • 使用线程,您可以对其执行多任务

  • 有一个下载服务器,这可以节省内存,并可能节省带宽。此外,它还允许您跳过flask中的PDF发回

  • 如果没有必要,不要使用PDF文件

  • 利用图书馆为你做这件事


  • 希望这有帮助

    正如您所说,您没有代码,这很好,但我只能给出一些建议

    我不确定您是如何发送文件的,但我假设您使用的是pythons
    open
    函数

  • 确保您正在以字节形式读取文件(例如,
    open(“”,'rb')

  • 将文件切成块并作为一个文件发送,这样它就不会冻结或卡住

  • 尝试较小的PDF文件,如果这确实有效,请尝试建议2

  • 使用线程,您可以对其执行多任务

  • 有一个下载服务器,这可以节省内存,并可能节省带宽。此外,它还允许您跳过flask中的PDF发回

  • 如果没有必要,不要使用PDF文件

  • 利用图书馆为你做这件事


  • 希望这有帮助

    我想与大家分享我的解决方案,但要感谢@CoolqB的回答。关键是包括正确读取二进制文件的
    'rb'
    ,并包括
    编解码器
    库。以下是最后的代码片段:

  • 客户请求:

    response=requests.get('https://www.mywebsite.com/_api_call)

  • 服务器响应:

    f=codecs.open(文件名'rb').read()
    返回f

  • 客户端句柄:

    使用编解码器。以f:
    f、 写(response.content)
    f、 close()


  • 世界上一切都好

    我想与大家分享我的解决方案,但要感谢@CoolqB的回答。关键是包括正确读取二进制文件的
    'rb'
    ,并包括
    编解码器
    库。以下是最后的代码片段:

  • 客户请求:

    response=requests.get('https://www.mywebsite.com/_api_call)

  • 服务器响应:

    f=codecs.open(文件名'rb').read()
    返回f

  • 客户端句柄:

    使用编解码器。以f:
    f、 写(response.content)
    f、 close()


  • 世界上一切都好

    看一看libraries@maxymoo等等,谢谢你们。好消息。我还不确定我是否能把答案标为答案,但我会尝试一下。看一看libraries@maxymoo等等,谢谢你们。好消息。我还不确定我是否能将答案标记为答案,但我会尝试一下。谢谢,信用卡总是很好:)我没有想到使用编解码器很好:D谢谢,信用卡总是很好:)我没有想到使用编解码器很好:D