Java 从不同的Google应用程序引擎应用程序调用ImagesService.getServingUrl()时不工作

Java 从不同的Google应用程序引擎应用程序调用ImagesService.getServingUrl()时不工作,java,google-app-engine,google-cloud-storage,Java,Google App Engine,Google Cloud Storage,我有以下问题: 1) 我将带有云存储控制台的图像放入一个桶中。 2) 从应用程序引擎应用程序中,我执行getServingUrl,并收到图像的工作URL使用的代码: ImagesServiceFactory.getImagesService().getServingUrl(ServingUrlOptions.Builder.withGoogleStorageFileName(cloudStoragePath).secureUrl(true)); 到目前为止还不错。 3) 从另一个应用程序引擎应

我有以下问题:

1) 我将带有云存储控制台的图像放入一个桶中。
2) 从应用程序引擎应用程序中,我执行getServingUrl,并收到图像的工作URL
使用的代码:

ImagesServiceFactory.getImagesService().getServingUrl(ServingUrlOptions.Builder.withGoogleStorageFileName(cloudStoragePath).secureUrl(true));
到目前为止还不错。
3) 从另一个应用程序引擎应用程序中,我也在同一个图像上获得了ServingUrl,现在我得到:

com.google.appengine.api.images.ImagesServiceFailureException: 
    at com.google.appengine.api.images.ImagesServiceImpl.ImagesService(ImagesServiceImpl.java:284)

当我第一次让另一个应用程序执行getServingUrl时,它在该应用程序中运行良好,现在我在另一个应用程序中得到了异常。这对于每个图像都是如此,因此可能会导致某些图像的getServingUrl在一个应用程序中工作(并保持工作状态),而其他图像的getServingUrl(在同一个存储桶中,具有所有相同的权限)在另一个应用程序中工作。这取决于哪个应用程序首先在该映像上调用getServingUrl

直接从云存储读取映像在这两种应用程序中都能正常工作


我还在做错什么吗?或者这是一个bug?

这是应用程序引擎映像API限制。不能为来自两个或多个独立应用程序的映像提供服务

如果您从谷歌云存储提供图像,则无法从两个单独的应用程序提供图像。只有在图像上调用getServingUrl的第一个应用程序才能获取为其提供服务的URL,因为该应用程序已获得图像的所有权。因此,随后在图像上调用getServingUrl的任何其他应用程序都将不成功。如果第二个应用程序需要为图像提供服务,则该应用程序需要首先复制图像,然后在副本上调用getServingUrl。(副本在存储中被重复删除。)


这看起来更像是设计而不是bug。为什么这应该是设计呢?特别是当直接从云端读取在这两种应用程序中都起作用时。可能只是为了让它独一无二。。因为你也可以删除服务url并获得一个新的。。!但是再一次。。我不确定也不知道。。。在这个问题上我没有玩过Java。是否有一条错误消息伴随着这个异常?不,我得到的正是我问题中显示的异常,没有任何消息。这也是我认为这可能是一个bug的原因。