我正在关注下面的链接。
我创建了一个新的Google Cloud Project,并按照上面的说明在远程服务器上运行正常
我尝试使用现有的旧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());下面是堆栈跟踪
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服务帐户,发现它确实存在。我怎么知道,谁是“呼叫者”?
发布于 2017-07-28 00:52:22
如果您使用来自App Engine的google-cloud库,并且没有另外指定,那么您将充当项目的应用程序引擎默认服务帐户。它的名称可能类似于your-project-id@apppot.gserviceaccount.com。
若要获取服务帐户名,请在控制台中使用open the Service Accounts page,或检查App Engine页面上的设置。
https://stackoverflow.com/questions/45347771
复制相似问题