繁体   English   中英

无法使用谷歌API将对象上传到谷歌云存储

[英]Not able to upload object to google cloud storage using google API

我使用以下链接来使用Google云端存储:

谷歌CLoud

我想使用上面API中给出的插入函数上传一个对象。我正在使用PHP。 我使用的代码如下:

$StorageService = new Google_StorageService($client);
$objects = $StorageService->objects;
$gso = new Google_StorageObject();
$gso->setName('myobj');
$postbody = array(file_get_contents('buc.jpg'));
$resp = $objects->insert('mybucket', $gso, $postbody);

但我得到错误:

致命错误:未捕获的异常'Google_ServiceException',并在/ home / www / public_html / abc / google中显示消息'错误调用POST https://www.googleapis.com/storage/v1beta1/b/mybucket/o:(400 )必填'第66行-api-php-client / src / io / Google_REST.php

我做错了什么,请帮帮我..

我发送参数的方式存在一些问题。 如果有人知道帮帮我..

这里有一个例子:

但那是在Java中请帮我在PHP中做同样的事情。 请帮帮我。

我想出了答案。 要使用的代码如下:

$objects = $StorageService->objects;
$postbody = array('data' => file_get_contents('buc.jpg'));
$gso = new Google_StorageObject();
$gso->setName('mybuc');
$resp = $objects->insert('mybucket', $gso ,$postbody);
print_r($resp);

然后它工作..我没有在数组中设置参数“data”作为函数的第三个参数传递。 我找到了它并且它有效。

存储桶共享全局命名空间。 您必须在将对象存储在其中之前创建存储桶,并且“mybucket”不是可用名称。

如果您通过https://storage.cloud.google.com/访问GCS浏览器,则可以在那里创建存储桶,然后引用PHP代码中的现有存储桶。

我不得不添加uploadType以使其工作,如下所述: httpsuploadType

$postbody = array('uploadType' => 'media', 'data' => file_get_contents('buc.jpg'));

data参数在哪里记录?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM