【问题标题】:Why does blobstore upload code have redirect url为什么 blobstore 上传代码有重定向 url
【发布时间】:2013-04-21 19:27:31
【问题描述】:

我想象使用 blobstore 存储图像的过程以将 blob 键保存在数据存储区中结束。 所以在下面的代码中,它应该在我的后端,为什么我需要一个重定向 URL,因为我已经有了 blob 键? 为什么我不只是将 blob 密钥保存在我的数据存储中然后返回它?

public class Upload extends HttpServlet {
    private BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();

    public void doPost(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException {

        Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req);
        BlobKey blobKey = blobs.get("myFile");

        if (blobKey == null) {
            res.sendRedirect("/");
        } else {
            res.sendRedirect("/serve?blob-key=" + blobKey.getKeyString());
        }
    }
}

此代码来自教程:https://developers.google.com/appengine/docs/java/blobstore/overview#Complete_Sample_App

【问题讨论】:

  • 您确实希望将 blob 密钥保存到数据存储中。演示只是出于演示目的将客户端浏览器发送到上传文件的视图。你不需要复制它。
  • @dragonx,也许你就是这份工作的人选。如果有适当知识的人一劳永逸地解决这些关于 blobstore-android-endpoint 的问题,那就太好了。

标签: android google-app-engine blobstore google-cloud-endpoints


【解决方案1】:

因为 Google 将图像存储在不同的服务上(Picassa 也使用)。 目标是优化存储并为开发人员提供一些工具来轻松操作这些图像。

请参阅文档中的此参考以了解您可以做什么: https://developers.google.com/appengine/docs/java/images/overview

为避免重定向,您应该使用此方法来提供图像: getServingUrl()

来自文档:

getServingUrl() 方法允许您生成一个稳定的、专用的 用于提供适合 Web 的图像缩略图的 URL。您只需存储一个 在 Blobstore 中复制原始图像的单个副本,然后请求 高性能的每图像 URL。这个特殊的 URL 可以提供该图像 自动调整大小和/或裁剪,并从此 URL 提供服务 不会在您的应用程序上产生任何 CPU 或动态服务负载(尽管 带宽仍照常收费)。图像以低 来自高度优化的无 cookie 基础架构的延迟。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 2011-11-03
    • 2021-07-21
    • 2019-12-26
    • 1970-01-01
    • 2019-01-22
    相关资源
    最近更新 更多