我正在尝试在谷歌云平台上设置存储.老实说,现在我对做什么很困惑.
我使用以下代码.
require_once("vendor/autoload.php");
use Google\Cloud\Storage\StorageClient;
use Google\Cloud\Storage\StorageObject;
use Google\Cloud\Storage;
$projectId = 'YOUR_PROJECT_ID';
$storage = new StorageClient([
'projectId' => 'xx',
'key'=> 'yy'
]);
$file_name = "imagename";
$obj = new StorageObject();
$obj->setName($file_name);
$storage->objects->insert(
"kmapsimage",
$obj,
['name' => $file_name, 'data' => file_get_contents("https://kmapst.blob.core.windows.net/images/kmap581b939a7a28c.jpeg"),'mimeType' => 'image/jpeg']
);
执行该功能时,我收到以下错误.
Argument 1 passed to Google\Cloud\Storage\StorageObject::__construct() must implement interface Google\Cloud\Storage\Connection\ConnectionInterface, none given, called in /var/www/html/test_imageupload.php on line 35 and defined in /var/www/html/vendor/google/cloud/src/Storage/StorageObject.php on line 71
我只想将图片上传到谷歌存储.
解决方法:
确保使用可以以json格式从GCP下载的凭据.
在标题中我有这个:
putenv("GOOGLE_APPLICATION_CREDENTIALS=".$_SERVER['DOCUMENT_ROOT']."/uploads/my-fe1tyui28f4f.json");
require $_SERVER['DOCUMENT_ROOT'].'/uploads/php-docs-samples/storage/api/vendor/autoload.php';
use Google\Cloud\Storage\StorageClient;
$storage = new StorageClient();
// Primera imagen......
$file = fopen($_SERVER['DOCUMENT_ROOT']."/uploads/".$filename."_200.jpg", 'r');
$bucket = $storage->bucket("my_bucket");
$object = $bucket->upload($file, ['name' => $dir."/".$filename."_200.jpg"]);
$object = $bucket->object($dir."/".$filename."_200.jpg");
$object->update(['acl' => []], ['predefinedAcl' => 'PUBLICREAD']);
我希望这有帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。