当前位置: 首页 > 知识库问答 >
问题:

无法使用google API将对象上载到google云存储

司寇光华
2023-03-14

我使用以下链接使用谷歌云存储:

谷歌云

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

$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”,消息为“调用POST时出错”https://www.googleapis.com/storage/v1beta1/b/mybucket/o: (400)第66行的/home/www/public_html/abc/google api php client/src/io/google_REST.php中的必填项

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

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

这里有一个例子:

实例

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

共有3个答案

邰博远
2023-03-14

我必须添加上传类型才能让它像这里提到的那样工作:https://cloud.google.com/storage/docs/json_api/v1/objects/insert

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

数据参数记录在哪里?

祝高阳
2023-03-14

桶共享一个全局命名空间。你必须在存储对象之前创建你的桶,并且“我的桶”不是一个可用的名字。

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

穆彬郁
2023-03-14

我找到了答案。使用的代码如下:

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

然后它工作...我没有设置数组中的参数“数据”作为函数的第三个参数传递。我发现了,它起作用了。

 类似资料:
  • 我正在尝试建立一个基于python的基本谷歌应用引擎站点,允许用户将文件上传到谷歌云存储(主要是图像) 我已经阅读了JSON API和GCS客户端库概述(以及blobstore等)的文档,但仍然没有很好地了解哪种方法是最好的以及它们之间的关系。如果有人能概述一下,或者给我指出一些我可以查看的资源,那就太好了 此外,任何相关的示例代码都会非常有用。我已经能够在此处运行上载示例,但不确定它们是否对应用

  • 我已经阅读了与此相关的所有其他答案。但这对我不起作用,或者我只是不明白一些事情。请帮忙。 我正在从客户端发送'image/png'base64字符串。它是这样的:“Ivborw0kggoaaansuheugaaaaaaaaaaa……” 在云函数我有方法: 有什么不对劲?

  • 我有一个要求,我需要上传文件到谷歌云存储(他拥有并完全维护它)桶。 这个谷歌云存储桶是由我的客户创建的。 我是谷歌云的新手,有亚马逊S3的经验。我在服务器上运行SSI,以将事务数据加载到平面文件。 我为谷歌云创建了一个示例帐户,并安装了谷歌SDK。我可以通过gsutil手动上传文件。 我的问题是 > 我应该如何建议我的客户共享凭据? 我如何连接到谷歌云存储与提供凭据独立? 如何通过以上两个步骤将文

  • 我的情况是,当我以JSON字符串的形式从其他来源接收数据时,我希望将此字符串上载到Google云存储,而不将此字符串写入本地文件并上载此文件。有没有办法做到这一点。非常感谢。如下代码所示 因此,我预计Google云存储将有一个文件test.json,其中包含来自jsonString的内容

  • 问题内容: 我已经阅读了使用Google AppEngine将图像发送到Google云存储中的问题。 但是,答案中的代码表明文件将首先上传到Blobstore,因此文件不能超过32MB。 如何将大文件直接上传到Google Cloud Storage? 我已经检查了官方文档Upload Objects ,但是我仍然不知道如何编写表格来发布大文件。 问题答案: 从1.7.0开始 将直接上传到Goog

  • 我正试图从控制台/命令行将一个表从big query导出到google cloud storage。控制台作业运行了几分钟,并在没有任何错误代码的情况下出错,命令行作业在运行一段时间后也会出现以下错误: 提取操作中的BigQuery错误:错误处理作业“数据流-实验:BQJOB_R308FF0F73D1820A6_00000157F77E8AB9_1”:后端错误。作业中止。 上面给出了命令行的作业i