无法在Google云端存储上创建文件

时间:2017-07-27 10:13:08

标签: google-app-engine google-cloud-storage

我正在关注以下链接。

https://github.com/GoogleCloudPlatform/getting-started-java/tree/master/bookshelf-standard/3-binary-data

我创建了一个新的Google云端项目,并按照上述说明完成了远程服务器上的所有操作

我尝试使用现有的旧的appengine项目(创建于4 - 5年前)。我在给定的代码中收到以下错误:

“来电者没有storage.objects.create访问存储桶......”

 storage.create(BlobInfo.newBuilder(bucketName, fileName)
 // Modify access list to allow all users with link to read file
   .setAcl(new ArrayList<>(Arrays.asList(Acl.of(User.ofAllUsers(), 
    Role.READER)))).build(),
 fileStream.openStream());

以下是stacktrace

  Uncaught exception from servlet
  com.google.cloud.storage.StorageException: Caller does not have storage.objects.create access to bucket asw12.
  at com.google.cloud.storage.spi.v1.HttpStorageRpc.translate(HttpStorageRpc.java:189)
at com.google.cloud.storage.spi.v1.HttpStorageRpc.create(HttpStorageRpc.java:240)
at com.google.cloud.storage.StorageImpl$3.call(StorageImpl.java:151)
at com.google.cloud.storage.StorageImpl$3.call(StorageImpl.java:148)
at com.google.api.gax.retrying.DirectRetryingExecutor.submit(DirectRetryingExecutor.java:94)
at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:54)
at com.google.cloud.storage.StorageImpl.create(StorageImpl.java:148)
at com.google.cloud.storage.StorageImpl.create(StorageImpl.java:141)
at com.example.getstarted.util.CloudStorageHelper.uploadFile(CloudStorageHelper.java:65)
at com.example.getstarted.basicactions.CreateBookServlet.doPost(CreateBookServlet.java:70

我在旧项目中查看了Google服务帐户,但它确实存在。我怎么知道谁是'来电者'?

1 个答案:

答案 0 :(得分:3)

如果您使用App Engine中的google-cloud库而未另行指定,则您将充当项目的应用引擎默认服务帐户。它的名字可能类似于your-project-id@appspot.gserviceaccount.com。

要在控制台中获取服务帐户名称open the Service Accounts page,或检查App Engine页面上的设置。