php multi curl发布csv文件

时间:2018-04-06 10:56:46

标签: php curl

我使用以下curl通过curl将csv文件的多部分发布内容发送到另一台服务器

我在csv文件中有1500条记录,发布数据大约需要5分钟。

我们是否可以更快地发布每条记录的帖子。 会在这里卷曲多种工作吗?或者它最终会多次发布相同的内容。

move_uploaded_file($_FILES['file']['tmp_name'], __DIR__.'/uploads/'. $_FILES["image"]['name']);

$file = "uploads/payables.csv";
$authorization = "Authorization: Bearer [some_token_key]";

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://example.org/api/v1/imports.json");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, [$authorization, 'Content-Type: text/csv']);
$cfile = new CurlFile($file,  'text/csv');
//curl file itself return the realpath with prefix of @
$data = array('data-binary' => $cfile);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$curl_response = curl_exec($curl);
curl_close($curl);

1 个答案:

答案 0 :(得分:0)

使用curl_multi _ *()不太可能有所帮助,只有在您可以对交换的两端的数据进行分片时才能实现。

由于您没有分析瓶颈的位置,因此无法说明什么会使这种交换变得更快。当然它不太可能是延迟,但可能是带宽,可能是网络配置,可能是客户端或服务器的容量,可能是很多其他的东西,或者它可能是多种因素的组合。

在开始尝试修复问题之前,您可能会考虑尝试隔离问题。

如果问题是带宽(以及一些网络配置问题),那么压缩文件应该会产生重大影响。不幸的是,我不认为libcurl启用SSL压缩的选项在PHP中公开 - 所以你需要注入一个transfer-encoding头并在你的代码中压缩文件。在PHP中压缩文件很简单,但前提是你可以将它全部加载到内存中。压缩流是a bit more involved