如何使用getServingUrl使用Appengine ImageService获取blobstore图像网址?

时间:2015-10-19 08:52:13

标签: java google-app-engine

我可以使用blobl键提供图像 -  res.sendRedirect("/serve?blob-key=" + blobKeys.get(0).getKeyString());

但在Appengine Blobstore docs中,它被提到这样 -

注意:如果您正在提供图像,则更有效且可能更便宜的方法是使用App Engine Images API而不是blobstoreService.serve()来使用getServingUrl()。 getServingUrl方法允许您直接提供图像,而无需通过App Engine实例。

我想知道怎么做才能解决这个问题 -

Map<String, List<BlobKey>> blobs = blobstoreService.getUploads(req);
List<BlobKey> blobKeys = blobs.get("myFile");

if (blobKeys == null || blobKeys.isEmpty()) {
    res.sendRedirect("/");
} else {
    res.sendRedirect("/serve?blob-key=" + blobKeys.get(0).getKeyString());
}

imageService docs here Get Serving Url Doc

1 个答案:

答案 0 :(得分:0)

 if (blobKeys == null || blobKeys.isEmpty()) {
         res.sendRedirect("/");
     } else {
         //todo add the user
         ImagesService imagesService = ImagesServiceFactory.getImagesService();
         ServingUrlOptions servingOptions = ServingUrlOptions.Builder.withBlobKey(blobKeys.get(0));
         String servingUrl = imagesService.getServingUrl(servingOptions);
         res.sendRedirect(servingUrl);
        // res.sendRedirect("/serve?blob-key=" + blobKeys.get(0).getKeyString());
     }