【问题标题】:Google\Cloud\Storage\StorageObject->downloadAsString() uncaught errorGoogle\Cloud\Storage\StorageObject->downloadAsString() 未捕获错误
【发布时间】:2019-12-04 15:56:19
【问题描述】:

我有一个从 Cloud Storage 读取文件的 PHP 脚本。它在本地开发中运行良好。但是当它在 App Engine 标准环境中运行时,它会输出以下错误消息:

Fatal error: Uncaught Google\Cloud\Core\Exception\ServiceException in /srv/vendor/google/cloud/Core/src/RequestWrapper.php:362
Stack trace:
#0 /srv/vendor/google/cloud/Core/src/RequestWrapper.php(206): Google\Cloud\Core\RequestWrapper->convertToGoogleException(Object(GuzzleHttp\Exception\RequestException))
#1 /srv/vendor/google/cloud/Storage/src/Connection/Rest.php(224): Google\Cloud\Core\RequestWrapper->send(Object(GuzzleHttp\Psr7\Request), Array)
#2 /srv/vendor/google/cloud/Storage/src/StorageObject.php(643): Google\Cloud\Storage\Connection\Rest->downloadObject(Array)
#3 /srv/vendor/google/cloud/Storage/src/StorageObject.php(574): Google\Cloud\Storage\StorageObject->downloadAsStream(Array)
#4 /srv/modules/profile/controllers/getresource.class.php(69): Google\Cloud\Storage\StorageObject->downloadAsString()

大多数文件不会发生这种情况。导致此问题的文件约为 250KB。我想知道 downloadAsString() 是否存在某种大小限制?

导致此问题的文件之一是https://www.justjeans.com.au/wcsstore/JustJeansAuroraStorefrontAssetStore/css/main.css?timestamp=2019070295000

【问题讨论】:

  • 此错误与您的代码处理异常中的未命中有关。请提供一些代码以了解我们如何为您提供帮助
  • $e->getMessage() 返回空字符串。
  • 你在代码中实现了重试方法吗?也许捕捉到异常,然后重试下载有问题的文件
  • 第一步是满足 StackOverflow 发布问题的要求。查看此链接以改进您的问题:stackoverflow.com/help/minimal-reproducible-example

标签: php google-cloud-platform google-cloud-storage


【解决方案1】:

downloadAsString() 方法使用流下载文件,然后在返回之前将其转换为字符串。

Link to the SDK code

除非您的 PHP 进程内存不足,否则文件大小应该不会有任何问题。

是否存在每次都会导致问题的文件?如果是这样,也许将其添加到问题中会是一个好主意。

【讨论】:

  • 是的,有几个文件导致了这个问题。但是其他更大的文件没有这个问题。
  • 从 App Engine 日志中看起来不像是内存问题。
猜你喜欢
  • 2020-02-08
  • 2020-05-20
  • 2017-09-30
  • 1970-01-01
  • 2017-04-10
  • 2018-04-06
  • 1970-01-01
  • 2020-08-11
  • 2018-10-17
相关资源
最近更新 更多