Google Cloud Client库-将本地文件加载到云存储中-cURL错误56:

时间:2018-10-24 17:43:52

标签: google-cloud-storage

我正在使用php Google Cloud Client库。

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

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

此语句有时会出现以下错误。


production.ERROR:cURL错误56:SSL读取:错误:00000000:lib(0):func(0):reason(0),errno 104(请参见http://curl.haxx.se/libcurl/c/libcurl-errors.html){“ exception”:“ [对象](Google \ Cloud \ Exception \ ServiceException(代码:0):cURL错误56:SSL读取:错误:00000000:lib(0):func(0):reason(0),错误编号104(请参见{{3} }),网址为/opt/processing/vendor/google/cloud/src/RequestWrapper.php:219) [stacktrace]


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

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

由于错误报告来自Google Cloud(错误率低于5%),然后重新运行代码,错误消失了,我认为错误原因来自Google Cloud Platform。

有人看到相同的错误吗?我们有什么办法可以防止此错误?还是我们只需要对过程进行编码以在出现此错误时重试?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

  

CURLE_RECV_ERROR(56)

     

接收网络数据失败。

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

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

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

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