1

您好我有以下问题:

我有一个 PHP 脚本,它通过 curl 和帖子上传文件。所以基本上它确实点击了“上传文件”按钮。

当我上传一个 100mb 的文件时,大约需要 100 秒 (+/- 10)。当我启动远程会话并使用浏览器上传相同的文件时,上传脚本在后台运行大约需要 40 秒。所以浏览器上传甚至没有全速。

我现在的问题是:为什么 curl 上传这么慢?我试着用谷歌搜索它,我发现的只是一些影响旧 curl 版本和 Windows 机器的邮件。

PS:服务器在 debian 上运行,脚本以 root 用户执行,在 php 或 apache 配置中找不到任何内容。

@编辑:

的回归curl_getinfo

[url] => http://example.com
[content_type] => text/plain
[http_code] => 200
[header_size] => 344
[request_size] => 464
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 113.560758
[namelookup_time] => 0.000961
[connect_time] => 0.055728
[pretransfer_time] => 0.055896
[size_upload] => 105000463
[size_download] => 11
[speed_download] => 0
[speed_upload] => 924619
[download_content_length] => -1
[upload_content_length] => 105000463
[starttransfer_time] => 1.057226
[redirect_time] => 0
[certinfo] => Array
    (
    )

[primary_ip] => xx.xx.xx.xx
[primary_port] => 80
[local_ip] => xx.xx.xx.xx
[local_port] => 39679
[redirect_url] =>
4

2 回答 2

0

因为您没有提供任何代码。我建议您查看这些 cURL 参数。你的答案就在这里。

CURLOPT_MAX_SEND_SPEED_LARGE

如果上传在传输过程中累积平均超过此速度(以每秒字节数计算),传输将暂停以保持平均速率小于或等于参数值。默认为无限速度。

所以我建议你启用这个参数(它默认为无限速度,如前所述)

还有,CURLOPT_LOW_SPEED_TIME&CURLOPT_LOW_SPEED_LIMIT

资源

于 2013-08-22T10:08:37.433 回答
0

好吧,这似乎只能通过修复 curl 来解决。

这就是我所做的:

  1. 更改了我的上传脚本以在文件即将上传时生成锁定文件
  2. 打开多个shell并执行脚本

或者基本上:

如果上传不能使用全速,我会同时上传这么多文件,速度损失是相等的。

于 2013-08-24T06:19:27.510 回答