【问题标题】:Get Response and Handle Errors for Google Cloud StorageClient $bucket->upload获取 Google Cloud StorageClient $bucket->upload 的响应和处理错误
【发布时间】:2018-03-07 16:17:03
【问题描述】:

我刚刚创建了我的第一个与 Google 对话的应用。

目前已成功上传到存储桶,一切正常。

我似乎找不到的一件事是关于如何在使用 StorageClient 时执行错误处理的良好文档。

我正在使用的代码的简化版本如下:

function test_bucket_upload($file_source)
{   

    $bucketName="my-bucket"; 
    $objectName = "my-object";
    $uploadName = "some-dir/{$objectName}";

    $storage = new StorageClient();
    $file = fopen($file_source, 'r');
    $bucket = $storage->bucket($bucketName);
    $object = $bucket->upload($file, [
        'name' => $uploadName
    ]);
}

我可以在 The Code 中看到上传功能,返回一个新的 StorageClient 对象,但每次我尝试访问响应变量时,我都会得到一个 500 internal server error

我希望能够检查上传是否成功。

我在网上浏览了一番,但同样,我似乎找不到任何关于如何执行此检查的好文档。

任何帮助将不胜感激。

【问题讨论】:

  • 您是否在 PHP 中启用了错误报告?如果您收到 500 错误,您还应该从 PHP 中看到一些关于出现问题的信息。尝试将error_reporting(E_ALL); 添加到脚本顶部。
  • 不幸的是,我不得不在一个有点奇怪的环境中开发它。我正在为在谷歌虚拟机实例上运行的安装制作一个 wordpress 插件。我正在努力让gcloud 实用程序在我的本地容器中运行,所以我不得不在生产环境中开发它=0[

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


【解决方案1】:

PHP 云存储库出错时抛出exceptions。具体来说,它将通过GoogleException 的子类,例如BadRequestException、ConflictException、NotFoundException 或 ServerException。

要处理错误,请使用try { ... } catch (GoogleException $e) { ... }(例如,如果您想以不同的方式专门处理 404,则使用子类之一)。

【讨论】:

  • 感谢您的帮助。我知道会有像这样简单的事情我只是在截止日期前,看不到任何明显的方法来做到这一点。现在我回去寻找这个,我可以看到他们在使用 getResumableUploader($data, array $options = []) 函数的示例中包含了一个 try { ... } catch { ... } 块。
猜你喜欢
  • 2020-06-11
  • 2020-03-13
  • 1970-01-01
  • 1970-01-01
  • 2016-01-24
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2019-09-19
相关资源
最近更新 更多