【问题标题】:Class 'Google\Cloud\Storage\StorageClient' not found找不到类“Google\Cloud\Storage\StorageClient”
【发布时间】:2018-02-01 06:54:09
【问题描述】:
use Google\Cloud\Storage\StorageClient;
require __DIR__ . '\vendor\autoload.php';

$storage = new StorageClient();

这是我的代码。我在 Windows 上安装了 composer 并收到以下错误:-

致命错误:在 214 行的 C:\xampp\htdocs\fingertips\application\controllers\teacher.php 中找不到类 'Google\Cloud\StorageClient'

即使在使用 composer 运行命令以使用谷歌云 api 之后,也没有发生任何事情。

在 cmd 上,当我运行它时,“composer require google/cloud-storage”,我得到了这个

为 google/cloud-storage 使用版本 ^1.3 ./composer.json 已更新 使用包信息加载作曲家存储库 更新依赖项(包括 require-dev) 无需安装或更新 生成自动加载文件

我已经运行了很多命令来解决这个问题,但没有成功。有人可以帮忙解决问题

【问题讨论】:

  • 阅读其他答案的 cmets,看来您帖子中描述的原始问题已得到解决。也许您应该编辑问题以添加有关进一步问题的信息,包括您看到的错误,但省略项目 ID 等私人信息。我很难确定你现在卡在哪里了。

标签: php composer-php google-cloud-platform gsp bucket


【解决方案1】:

关于你的第二个问题,你没有包括你看到的实际错误。

我可以看到这个代码块的问题:

require __DIR__ . '\vendor\autoload.php';

$storage = new StorageClient();
$file = fopen($params['book']['tmp_name'], 'r');
$bucket = $storage->bucket('fingertips-books');
$object = $bucket->upload($params['book']['name'], [
    'name' => 'test.pdf'
]);

我缺少您要上传的实际数据。上传方法需要上传数据。这应该有效:

require __DIR__ . '\vendor\autoload.php';

$storage = new StorageClient();
$bucket = $storage->bucket('fingertips-books');
$object = $bucket->upload(file_get_contents($params['book']['tmp_name']), [
    'name' => 'test.pdf'
]);

有关如何上传文件的更多示例,请参阅documentation

【讨论】:

  • Array ( [章节] => 449 [topic] => [description] => dsds [book] => Array ( [name] => 2017-03-23.pdf [ type] => application/pdf [tmp_name] => C:\xampp\tmp\php97AA.tmp [error] => 0 [size] => 45022 ) ) 
  • 这是参数变量
  • 所以你得到的错误看起来确实缺少数据(0 [大小])如果你尝试我调整的方法会发生什么?
  • 未捕获的异常 'Google\Cloud\Core\Exception\ServiceException' 带有消息 '{ "error": { "errors": [ { "domain": "global", " reason”:“authError”,“message”:“Invalid Credentials”,“locationType”:“header”,“location”:“Authorization” } ],“code”:401,“message”:“Invalid Credentials” } }
  • 这意味着您实际上缺少身份验证。由于您用于 PDF 的文件名,我猜您是在 Windows 机器上本地运行它。您需要运行 gcloud 命令来创建应用程序默认凭据,用于对本地完成的请求进行身份验证。部署应用程序时,这将自动完成。执行this article 中列出的步骤
【解决方案2】:

您是否安装了存储客户端?如此处所述。 https://packagist.org/packages/google/cloud-storage 使用

composer require google/cloud-storage

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-02
    • 2018-06-01
    • 2023-03-05
    • 2018-06-05
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多