动态索引谷歌appengine

时间:2013-11-12 15:20:53

标签: java python google-app-engine indexing

我的应用程序创建并发布其类型的数据,基本上它是对我们的PAAS应用程序进行Web服务调用,并从响应创建这些类型并填充它们。

所以问题是如何创建动态索引,因为在这种情况下,它不使用app cfg.py(实际上不会因为它是用java编写的并且已经部署(w.Maven)。

我发现了一个在线发布的解决方案,即使用python,所以我的想法是托管一个python应用程序,其唯一目的是创建索引。

然而,上述解决方案对我不起作用。当我尝试从python应用程序连接时,它返回“缺少必需的标头”,或者如果我尝试在java中连接则找不到url。请注意,我在python版本中使用SACSID,在java版本中使用OAuth。

我找不到在线记录的api,当我试图询问帖子的作者时,帖子永远不会通过。

请看这个:你看起来对吗? api仍然可用吗?

http://rahulswackyworld.blogspot.com/2010/03/dynamic-indexes-with-google-app-engine.html

我的代码。注意我做了一些更改以使用UrlFetch

 from google.appengine.api import users

 from google.appengine.tools import appengine_rpc

 import webapp2

 import urllib

 from google.appengine.api import urlfetch


 #START MY STUFF

 class MainPage(webapp2.RequestHandler):

    def get(self):
        host = 'appengine.google.com'
        source = 'iristest-publicview.appspot.com'

        def auth_function():
            return ('<A valid admin username>','<A valid password')

        rpc_server = appengine_rpc.HttpRpcServer(host, auth_function, 'Python 2.7', source)

        #Authenticate
        rpc_server._Authenticate();

        if rpc_server.authenticated == True:
            print 'Your Authentication Was Successful.'

            for cookie in rpc_server.cookie_jar:
                if cookie.name and cookie.name == 'SACSID':
                    print 'Authentication Token Obtained (%s => %s)' % (cookie.name, cookie.value)

        #index_payload is description of your indexes in YAML - This can be generated in various different ways.
        form_fields = '{ indexes:\n kind:< THE KIND I JUST CREATED DYNAMICALLY > \n properties: \n - name:extId \n direction:asc&app_id=< MY APP'S ID >&version=6 }'

        form_data = urllib.quote_plus(form_fields)

        url = 'https://appengine.google.com/api/datastore/index/add'

        result = urlfetch.fetch(url=url,
            payload=form_data,
            method=urlfetch.POST,
            headers={'Content-Type': 'application/x-www-form-urlencoded', 'Cookie': cookie.value, 'Timeout': 60000, 'X-Same-Domain': '1' })

        print result.content

        print 'Uploading Index Successful'

        #END MY STUFF

    application = webapp2.WSGIApplication([
        ('/', MainPage),
    ], debug=True)

**

0 个答案:

没有答案