gpt4 book ai didi

java - GAE : How is it possible to access data/files that are stored in the GAE Blobstore by an external Web Service that is not deployed on GAE using Java

转载 作者:行者123 更新时间:2023-12-02 07:54:38 26 4
gpt4 key购买 nike

在 GAE 中,我有一个应用程序将文件存储在 GAE blobstore 服务中。数据存储后,还应将其发送到未部署在 GAE 上的外部 Web 服务。我使用Java。

我的第一个想法是使用 JAX-RPC(用于基于 XML 的 RPC 的 Java API)和 SAAJ(用于 Java 的带有附件 API 的 SOAP),如 http://www.ibm.com/developerworks/xml/library/x-tippass/ 中所述。但我无法在 GAE 上部署 Axis2 框架,因为我遇到了套接字异常(GAE 中不允许)。这个想法是将数据推送到外部 Web 服务。

在第二次尝试中,我想从 GAE 中提取数据,这意味着通过外部 Web 服务直接访问 Blobstore 中的文件。在 GAE 的管理控制台中,可以下载 blob。因此,我想,我可以对外部 Web 服务执行相同的操作,方法是将 blob 的 key 传递给外部 Web 服务以使用 java.net.URL 来获取我的文件,此处描述类似:http://code.google.com/intl/de-DE/appengine/docs/java/urlfetch/overview.html 。该链接如下所示:

String blobFileUrl = "https://appengine.google.com/blobstore/download?app_id=s~gae_app&key="+ gaeBlobKey;

但是,它不起作用,因为 webservice/www-user 需要经过身份验证和授权才能访问该文件。据我所知,Google 不提供 Java API 来从外部 Web 服务登录 GAE。

是否可以使用 Java 通过未部署在 GAE 上的外部 Web 服务访问 GAE 的 blob/数据?如果是这样,怎么可能?

最佳答案

您可以在 GAE 应用程序中创建一个 servlet,它只为给定 blob 键的 blob 提供服务。

网址将是这样的:

http://appid.appspot.com/blobserve?blobKey=3asdfg324gdasdf

您的 servlet 将如下所示:

public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException {
BlobKey blobKey = new BlobKey(req.getParameter("blobKey"));
blobstoreService.serve(blobKey, res);
}

关于java - GAE : How is it possible to access data/files that are stored in the GAE Blobstore by an external Web Service that is not deployed on GAE using Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9801619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com