使用Java库访问Google Cloud Storage时出现“403禁止访问”错误。

6

我正在尝试在Scala中使用Google Cloud Storage Java库来列出存储桶中的项目。

val credential = new GoogleCredential.Builder()
  .setTransport(GoogleNetHttpTransport.newTrustedTransport())
  .setJsonFactory(JacksonFactory.getDefaultInstance())
  .setServiceAccountId("xxx@developer.gserviceaccount.com")
  .setServiceAccountScopes(Collections.singleton(StorageScopes.DEVSTORAGE_READ_ONLY))
  .setServiceAccountPrivateKeyFromP12File(new File("file.p12"))
  .build()
val storage = new Storage.Builder(
  GoogleNetHttpTransport.newTrustedTransport(),
  JacksonFactory.getDefaultInstance(),
  credential)
  .setHttpRequestInitializer(credential)
  .setApplicationName("app")
  .build()
storage.objects.list("bucket").execute

然而,我得到了

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "Forbidden",
    "reason" : "forbidden"
  } ],
  "message" : "Forbidden"
}

我的电子邮件账户可以访问存储桶,我可以通过在我的账户中创建一个项目来使用gsutil访问它。 我也在我的账户中的一个项目中创建了xxx@developer.gserviceaccount.com,你有什么想法如何设置权限?

2个回答

3

我们遇到了相同的问题,并找到了解决方案。要修复它,我们需要将我们的服务账户电子邮件地址添加到Google Play Console权限列表中,并给予服务账户财务报告权限。


这个解决方案不安全!任何人都可以反向工程APK并获取您的P12密钥。您的Google Could存储帐户可能会受到损害。这是我提出的未解决的问题,因为我也在寻找解决方案!http://stackoverflow.com/q/28001476/3216207 - Oru

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接