【问题标题】:Google Cloud Client Library - load local file to cloud storage - cURL error 56:谷歌云客户端库 - 将本地文件加载到云存储 - cURL 错误 56:
【发布时间】:2018-10-24 17:43:51
【问题描述】:

我正在使用 php 谷歌云客户端库。

$bucket = $this->storage->bucket($bucketName);

    $object = $bucket->upload(
        fopen($localFilePath, 'r'),
        $options
    );

这种说法,有时会报以下错误。


production.ERROR: cURL error 56: SSL read: error:00000000:lib(0):func(0):reason(0), errno 104(见http://curl.haxx.se/libcurl/c/libcurl-errors.html){"exception":"[object] (Google\Cloud\Exception\ServiceException(code: 0): cURL error 56: SSL read: error:00000000:lib(0):func(0):reason(0), errno 104 (见http://curl.haxx.se/libcurl/c/libcurl-errors.html) at /选择/处理/供应商/谷歌/云/src/RequestWrapper.php:219) [堆栈跟踪]


但我重新运行代码后,错误消失了。

我已经运行代码(数据处理)一年多了,以前很少看到这个错误。现在,我将代码移至新服务器。我开始看到这个错误。 (可能这个错误以前发生过,只是我的旧设置没有忽略捕获并记录这些错误。)

由于报错是来自谷歌云(错误率小于5%),重新运行代码,错误消失,我认为错误原因来自谷歌云平台。

有人看到同样的错误吗?我们能做些什么来防止这个错误吗?或者我们只需要对我们的流程进行编码,以便在弹出此错误时重试?

谢谢!

【问题讨论】:

    标签: google-cloud-storage


    【解决方案1】:

    您得到的错误代码(错误 56)定义为:

    CURLE_RECV_ERROR (56)

    接收网络数据失败。

    如果您收到此错误,则可能是您的网络问题导致您的连接中断。在 Internet 上,您可能会偶尔但很少会遇到这种错误。如果它经常发生,则可能会发生更糟糕的事情。

    这些类型的网络问题可能是由很多原因引起的,但这里有一些可能性:

    • 您计算机上的防火墙或安全软件。
    • 网络设备(例如交换机、路由器、接入点、防火墙等)或网络设备配置。
    • 您的 ISP 和 Google 之间的连接中断或断断续续(虽然看起来像 Google wasn't detecting any outages recently)。

    当您与云存储提供商(Google Storage、AWS S3 等)打交道时,您应该始终为任何重要的事情编写自动重试逻辑。互联网并不总是完全可靠的,最好在您的代码中对此进行规划,而不是依赖于没有问题。

    【讨论】:

    • 就在几分钟前,我看到了这个错误。 cURL 错误 23: Failed writing body (8192 != 16384) (见curl.haxx.se/libcurl/c/libcurl-errors.html) 简单来说,我看到了更多的 curl 错误。具有不同的代码编号。那么可能是由于同样的原因,新的服务器网络问题?
    • 错误23是写错误(56是读错误),所以还是很可能是网络问题。错误 23 也可能是由写入本地文件的问题引起的,因此可能值得检查以确保您的操作系统日志中没有任何有趣的内容。
    猜你喜欢
    • 2016-03-21
    • 2018-03-26
    • 1970-01-01
    • 2016-01-17
    • 2020-07-20
    • 2014-05-04
    • 2017-11-23
    • 2019-05-08
    • 1970-01-01
    相关资源
    最近更新 更多