【问题标题】:Sending large data from a server to another将大数据从一台服务器发送到另一台服务器
【发布时间】:2012-07-23 13:29:59
【问题描述】:

我正在使用 CURL 在服务器之间发送大量数据,我正在使用 POST,这样可以吗?还是有更好/标准的方式来使用 curl 发送大量序列化数据?

问题出在 php 设置中的 max-post-size 中,我必须更改它(默认 2MB)。我还没有遇到任何问题,但是当系统在线时,每次发送的数据可能大于50MB!

有什么想法吗? 谢谢。

编辑:

我正在发送 DATA 而不是 FILES ,一旦接收到的数据应该由第二台服务器处理并保存到数据库/文件/执行一些操作,并且可能需要在处理数据后发送响应。

我只是想知道,除了 max-post-size 之外,我还会遇到其他问题吗? (忘记 curl 和 php 的超时),无论如何让服务器不查看 max_post_size ?也许通过使用 PUSH ?还是放?那个 post_size 会影响 PUSH 或 PUT 吗?以及如何通过 curl 使用它? 这么多问题!

【问题讨论】:

  • 好吧,如果你可以压缩数据,那可能会减少它,因此它会更好。但除此之外,POST 看起来像是发送数据的有效 HTTP 方法。也有 PUT,但应该很相似。
  • 我个人会使用基于 AJAX 的方法,例如 jsonp,而不是 CURL。 Curl 非常慢,而 AJAX 几乎是即时的。
  • @Austin:我敢打赌这里不是这样。
  • 没错,这取决于他的目标以及他计划如何使用这些数据。
  • @Austin 我在两台服务器之间发送数据,没有浏览器,没有使用 ajax 的 javascript。甚至 json 都需要某种连接,那会是什么?

标签: php curl http-post


【解决方案1】:

使用 cURL 非常好。

就我个人而言,我宁愿不必通过 Web 服务器(例如 Apache)来执行此操作,因为在此过程中可能存在太多潜在故障,例如。 PHP超时、web服务器超时、内存限制、无写权限、仅限web root等

我更愿意通过为文件传输而设计的机制来做到这一点:

  • FTP
  • scp(通常通过 SSH 进行 FTP)
  • Dropbox(有 API)
  • Amazon S3(带有PHP library 的简单 API)

【讨论】:

  • FTP 会很慢,我没有发送文件,我发送的是必须处理的数据,而且我肯定不会使用第 3 方!!
【解决方案2】:

路还行。

还有两个想法给你:

  1. 使用 FTP(您可以将大型序列化文件上传到可从您的服务器访问的 ftp 服务器
  2. 使用mysql(可以将大的序列化内容存储在mysql-server上)

【讨论】:

  • 我建议不要使用 MySQL。它并不是真正为传输文件(尤其是大文件)而设计的。
  • FTP 会很慢,因为我发送的是要处理的数据而不是文件! .
猜你喜欢
  • 2012-03-10
  • 2013-12-03
  • 1970-01-01
  • 2015-06-25
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 2018-02-05
  • 2022-12-02
相关资源
最近更新 更多