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

如何解决谷歌云存储403禁止访问bucket

刘丰羽
2023-03-14

我想从Google Play Analytics获取数据,它存储在Google云存储中。经过研究,洛特发现,并没有直接的API来获取谷歌播放分析报告数据。因此,我找到了通过GoogleAPI客户端PHP库链接访问GooglePlay帐户报告的方法,并遵循了给定的方法。我已经创建了服务帐户,授予了所有者权限,并启用了谷歌云api。

在链接中显示的代码中,如果我使用var_dump($bucket),我会得到垃圾数据,如果运行进一步的代码,我会得到这个错误。

致命错误:未捕获异常“Google\Cloud\exception\ServiceException”,消息为“{”error:{”errors:[{”domain:“global”,“reason:“probled”,“message”:“调用者没有对bucket的storage.objects.list访问权限,我无法显示任何JS fiddle,因为bucket名称和密钥等其他信息对公司是保密的。这是我使用的代码,

require 'vendor/autoload.php'; 
use Google\Cloud\Storage\StorageClient; 
$client = new StorageClient([ 'projectId'=> 'myproject-id','scopes'=> [StorageClient::READ_ONLY_SCOPE],'keyFile'=> json_decode(file_get_contents('path_to_jsonfile'), true) ]);                                  $bucket=$client->bucket('mybucketname'); 
/*Find bucket name in Google Developer Console>>Reports */ 
$buckets=$client->buckets([ 'prefix' => 'stats/installs/']); 
foreach ($buckets as $bucket) {echo $bucket->name().PHP_EOL; }

接受一些帮助。请告诉我一些解决办法。提前感谢

共有2个答案

黎阳冰
2023-03-14

事实上,需要更多关于代码结构的信息细节,以提供一个明确的解决方案,如上面的评论所述。从收到的错误和下面复制的代码部分判断,如果我们查看"Google\Cloud\Store\StorageClient"留档页面,即以下行开始:use Google\Cloud\ServiceBuilder;,您的应用可能跳过了需要的阶段。

此外,JSON中存储的凭据可能不正确。您是否已通过gcloud auth login命令在实例上创建凭据?

瞿子濯
2023-03-14

在Google Play开发者控制台下(所有应用程序)-

 类似资料:
  • 我正在使用请求将文件上传到谷歌云存储。 请求是: 我得到以下错误作为响应: 我在某处读到,我需要打开谷歌云存储JSON API。是否必须打开谷歌云存储JSON API,或者是否有其他解决方案来修复此错误?

  • 我试图设计一个应用程序,从我的谷歌云存储帐户下载适当的声音文件。该应用程序不访问用户帐户,但我自己的帐户。 我的阅读让我相信,最合适的模式是服务账户https://code.google.com/p/google-api-java-client/wiki/OAuth2#Service_Accounts 不幸的是,开发人员决定不提供Android的例子。他们确实提供了一个很好的例子,只是简单的Jav

  • 我正在尝试使用scala中的google云存储java库来列出bucket中的项目 然而我得到了 我的电子邮件帐户可以访问桶,我可以通过在我的帐户中创建一个项目来使用gsutil访问它。我已经在我的帐户中的项目中创建了xxx@developer.gserviceaccount.com,有什么想法可以设置权限吗?

  • 我正在开发一个web应用程序,作为与Google云存储(GCS)的接口。 我正在使用后端服务来检索我存储在GCS上的文件列表及其使用JSON API的URL,并将其返回到我的Web应用程序。然而,我真的无法通过这些URL加载文件,总是返回403禁止。 我不确定GCS身份验证在幕后是如何工作的,也不确定是否可以直接授予对网络应用程序的访问权限。我不确定如何通过超文本传输协议请求附加应用程序鉴别信息。

  • 我正在尝试谷歌的这个例子,展示了“如何使用谷歌应用编程接口客户端库Java向谷歌云存储JSON应用编程接口发送请求”,其中列出了一个桶的内容。唯一的区别是我在Linux上使用Eclipse(与Maven一起)而不是直接使用Maven。我不断得到以下错误消息,由行生成: 403禁止{“代码”:403,“错误”:[{“域”:“全局”,“消息”:“权限不足”,“原因”:“权限不足”}],“消息”:“权限

  • 在学习如何使用谷歌计算引擎和谷歌云存储时,我遇到了一个ACL问题。在我自己的计算机上,使用我自己的SSH凭据,我可以用我的bucket做任何我想做的事情。但是当我使用基于Web的SSH客户机登录到我的compute实例时,我只能从bucket中读取。将数据复制到bucket时会出现“AccessDeniedException:403权限不足”错误。(我正在用Gsutil做所有这些复制实验。) 这对