0

我正在本地开发和测试 App Engine 应用程序。我希望应用程序打印出 Google Cloud Storage 项目中所有存储桶名称的列表。

一些代码:

Storage storage = StorageOptions.getDefaultInstance().getService();
Page<Bucket> buckets = storage.list(Storage.BucketListOption.pageSize(100));
Iterator<Bucket> bucketIterator = buckets.iterateAll();
while (bucketIterator.hasNext()) {
    Bucket bucket = bucketIterator.next();
    System.out.println("bucket name: " + bucket.getName());
}

要访问云存储,我使用的是google-cloud此处的 Java 库:http: //googlecloudplatform.github.io/google-cloud-java/0.9.4/index.html

运行上述代码段会导致 401 Unauthorized。

如上述链接中“它是什么? ”部分中所述,如果应用程序在 App Engine 或 Compute Engine 中运行,则身份验证是自动的。

由于我在本地运行,我假设自动身份验证不起作用(如果我错了,请纠正我)。

为了进行身份验证,我遵循了“身份验证gcloud auth application-default login”部分下列出的选项之一,并在终端中发出了命令。

在尝试访问 Cloud Storage 时,我不再收到未经授权的 401,但是请务必获得以下信息:

java.security.AccessControlException: access denied ("java.io.FilePermission" "/Users/example/.config/gcloud/active_config" "read")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
at java.security.AccessController.checkPermission(AccessController.java:884)
  1. 我该如何解决这个问题AccessControlException
  2. 这是在本地开发时向 Cloud Storage 进行身份验证的正确方法吗?如果不是,那是什么?
4

0 回答 0