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

Cloud Storage にアクセスするために、google-cloudここにある Java 用のライブラリを使用しています: http://googlecloudplatform.github.io/google-cloud-java/0.9.4/index.html

上記のスニペットを実行すると、401 Unauthorized が発生します。

上記のリンクの「 What is it? 」セクションで指定されているように、アプリケーションが App Engine または Compute Engine 内で実行されている場合、認証は自動的に行われます。

私はローカルで実行しているので、自動認証は機能しないと思います (間違っていたら訂正してください)。

認証するには、「認証」セクションにリストされているオプションの 1 つに従い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