1

我正在使用带有 PHP 和 cURL 的 OneNote REST API 下载(视频)文件附件。虽然文件小于 30.0 MB 时一切顺利,但任何更大的文件都会产生 502 Bad Gateway 错误并且没有数据。

然而,在出现 502 错误的不同情况下(共享笔记本),向 API 请求添加“FavorDataRecency: true”解决了该问题,在这种情况下它没有任何效果。

解决(或通过)这个问题的方法是什么?

[编辑]

这是一个超时问题(感谢 Jim)。我的日志显示文件下载在 120 秒时停止并出现 502 错误。

我的 PHP 脚本在 Windows 10 上的 IIS 10 下的 localhost 上运行。当我发现 IIS 的连接超时为 120 秒时,我以为我正在做某事。但是我已经将它提高到 240 秒并且超时障碍仍然存在。

我所做的其他配置更改:

  • 提高了 IIS 10 中的 FastCgi requestTimeout 和 activityTimeout。
  • 添加了 240 秒的 CURLOPT_TIMEOUT(以及已设置的 240 秒的 CURLOPT_CONNECTTIMEOUT)。

我还缺少其他一些超时设置吗?

有没有可能是 OneNote 服务器超时?

4

1 回答 1

1

听起来你在途中的某个地方遇到了超时。PHP 有一个最大执行时间ini 配置,cURL 有超时设置,各种 web 服务器可以有一个最大连接时间,这个帖子类似:"Bad Gateway Error 502" when trying to download server-generated .zip file

这将取决于您正在运行的软件堆栈,但请检查配置设置以了解您可能通过下载大文件而超过的超时值。这也是 PHP、apache 和 FCGI/FastCGI 超时的好资源:https ://www.devside.net/wamp-server/apache-and-php-limits-and-timeouts

于 2016-07-13T06:22:02.610 回答