我刚刚安装了Google Cloud Storage for PHP(https://cloud.google.com/php/docs/reference/cloud-storage/latest),使用了他们推荐的Composer请求(Composer require google/cloud-storage)。我还设置了一个用于身份验证的服务帐户,并下载了JSON文件,就像他们的身份验证文档建议的那样(https://github.com/googleapis/google-cloud-php/blob/main/AUTHENTICATION.md)。
使用示例代码:
require 'vendor/autoload.php';
use Google\Cloud\Storage\StorageClient;
$storage = new StorageClient([
'keyFilePath' => '/path-to-key.json'
]);
$bucket = $storage->bucket('bucket_location');
print_r($bucket);
return false;
字符串
我得到错误:Copyright © 2018 - 2019 www.jsjsj.com All Rights Reserved.粤ICP备15044766号-1
看起来Guzzle没有加载。该函数位于Guzzle下的Utils.php文件中。
我尝试了composer update,composer auto-dump,在错误堆栈中,我可以看到新的StorageClient()函数加载了json身份验证文件。
有谁知道我可以尝试让Guzzle加载什么?当我运行composer show时,我可以看到Guzzle版本是7.7.0。
下面是我的composer.json文件内容:
{
"require": {
"google/cloud-storage": "^1.33"
}
}
型
1条答案
按热度按时间qyuhtwio1#
把这篇文章作为一个社区wiki发布给其他人:
解决方案:
1.将PHP版本从7.4升级到8.0以获取更详细的错误信息。
1.确定了Google Cloud Storage和Xero Accounting库之间的冲突,两者都使用不同版本的Guzzle。
1.认识到为同一代码库混合不同版本的库是不可能的。
1.探讨了如何将两个库隔离在不同的目录中以避免冲突。
1.考虑将Xero Accounting库升级到与Google Cloud Storage使用的Guzzle版本兼容的版本。
附加信息:
PHP版本:7.4.30-0118(更新至8.0后)
Composer依赖项:
还有另一个库,Xero Accounting,它也使用Guzzle,并设置在Composer的子目录中。
备注: