我正在使用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。
有人看到相同的错误吗?我们有什么办法可以防止此错误?还是我们只需要对过程进行编码以在出现此错误时重试?
谢谢!
答案 0 :(得分:1)
您得到的错误代码(错误56)定义为:
CURLE_RECV_ERROR(56)
接收网络数据失败。
如果遇到此错误,则可能是网络问题导致了连接中断。在Internet上,您可以偶尔偶尔遇到这种错误。如果它经常发生,则可能发生的情况更糟。
这些类型的网络问题可能是由很多原因引起的,但是有一些可能性:
当您与云存储提供商(Google Storage,AWS S3等)打交道时,对于任何重要的事情,您都应该始终使用自动重试逻辑进行编程。互联网并不一定总是完全可靠,因此最好在代码中进行规划,而不要依靠没有问题。