4

我正在使用以下链接来使用 Google Cloud Storage:

谷歌云

我想使用上述 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);

但我得到错误为:

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

我在做什么错请帮帮我..

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

这里有一个例子:

例子

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

4

3 回答 3

4

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

$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”作为函数的第三个参数传递。我发现它有效。

于 2012-09-25T09:47:01.537 回答
0

桶共享一个全局命名空间。您必须先创建存储桶,然后才能在其中存储对象,并且“mybucket”不是可用的名称。

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

于 2012-09-24T22:33:38.863 回答
0

我必须添加uploadType以使其正常工作,如此处所述:https ://cloud.google.com/storage/docs/json_api/v1/objects/insert

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

data参数记录在哪里?

于 2015-06-12T14:06:25.857 回答