【问题标题】:Not able to upload object to google cloud storage using google API无法使用谷歌 API 将对象上传到谷歌云存储
【发布时间】:2015-06-12 22:06:25
【问题描述】:

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

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);

但我得到错误:

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

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

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

这里有一个例子:

Example

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

【问题讨论】:

    标签: php google-cloud-storage


    【解决方案1】:

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

    $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);
    

    然后它工作.. 我没有在要作为函数的第三个参数传递的数组中设置参数“数据”。我发现并且成功了。

    【讨论】:

    • 无论如何,您可以提供更多关于您所包含内容的信息吗?
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      data 参数记录在哪里?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-04
        • 1970-01-01
        • 1970-01-01
        • 2014-08-03
        • 2018-09-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多