Совместное использование ключей сущности между приложениями

Мне было интересно, возможно ли/разрешено ли совместное использование сущности между двумя приложениями, так что одно приложение создает и сохраняет затем сущность, а затем второе получает ключ от первого и затем может получить доступ к этой сущности? Должен ли Second.py иметь информацию о классе Ent, или он просто знает все о Ent, просто имея объект?

First.py:

class Ent(db.model):
    def stuff():
        print "I belong to first"
class out(webapp2.RequestHandler):
    def get():
        e = Ent()
        key = e.put()
        return key

Второй.py:

class in(webapp2.RequestHandler): 
    response = urllib2.urlopen(urlOfFirstApp)
    ent = #access BigTable with response/key, I'm not sure how to do this or if I can or if I'm allowed to
    ent.stuff()

person EasilyBaffled    schedule 27.06.2013    source источник
comment
Ошибка в first.py. Вы забыли скобки после e.put ;)   -  person Linuxios    schedule 27.06.2013
comment
Спасибо исправил. Я буду честен, это должен был быть псевдокод, который немного вышел из-под контроля.   -  person EasilyBaffled    schedule 27.06.2013


Ответы (1)


Это зависит от того, где хранятся ваши данные. Если он хранится в хранилище данных GAE, он может храниться в хранилище данных только для одного приложения, и другой должен будет получать к нему доступ через какой-либо HTTP API. Однако если он хранится в чем-то вроде Google Cloud Storage, вы можете (я думаю) обмениваться идентификаторами и доступом из нескольких приложений.

person Linuxios    schedule 27.06.2013
comment
Я никогда не понимал, что есть разница, я думал, что хранилище данных GAE было BigTable и было общим для всех. - person EasilyBaffled; 27.06.2013
comment
@EasilyBaffled: Подумайте, насколько это было бы катастрофой. Любой мог бы просто подобрать ключи или идентификаторы и получить доступ к данным других людей. Также см. эту вопрос. - person Linuxios; 27.06.2013