在应用程序A
我使用BlobStore API将图片上传到Google云端存储(GCS)。从同一个应用程序中,我可以使用图像的云存储文件名来获取服务URL(例如"/gs/bucket-name/object-file-name"
)
关于申请B
我尝试使用相同的文件名获取服务网址。但是我得到了ImagesServiceFailureException
,而且很明显这是由访问权限引起的。
但是,我不确定权限到底出了什么问题。在我的Google API项目下,我已将两个GAE应用添加为具有Can edit
权限的团队成员。我的理解是项目所有者和项目编写者组对该对象具有FULL_CONTROL权限(根据https://developers.google.com/console/help/#DifferentRoles)
对于在同一GAE应用中上传的图片,getServingUrl(ServingUrlOptions.Builder.withGoogleStorageFileName("object_name"))
是否严格?
答案 0 :(得分:2)
我使用通常的getServingUrl(ServingUrlOptions.Builder.withBlobKey(blobKey))
解决了这个问题。而不是getServingUrl(ServingUrlOptions.Builder.withGoogleStorageFileName(gsFileName))
。
重要的是要注意,这个blob密钥是使用BlobstoreService的createGsBlobKey生成的,并且它不是通常的blob密钥。