首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >download_data和upload_data键在AppEngine中的差异

download_data和upload_data键在AppEngine中的差异
EN

Stack Overflow用户
提问于 2013-06-24 02:37:02
回答 1查看 338关注 0票数 2

根据AppEngine文档 (以下引用),使用download_data和upload_data应该保留下载数据的原始密钥。

下载数据时,实体与其原始密钥一起存储。当数据上传时,将使用原始密钥。如果数据存储中存在一个实体,其密钥与正在上载的实体相同,则将替换该数据存储中的实体。

我使用这两个命令:

代码语言:javascript
复制
appcfg.py download_data --oauth2 --url=https://myapp-id.appspot.com/_ah/remote_api --filename=testdata/gamedata

appcfg.py upload_data --url=http://localhost:9876/_ah/remote_api  --filename=testdata/gamedata

数据上传的I相同,但密钥不同,知道我做错了什么吗?或者,在本地devappserver中,密钥的计算方式是否不同?

更新

添加一些数据来比较prod和本地dev版本。

生产密钥:ag9zfmF3ZXNvbWVzdGdhbWVyGAsSCENhdGVnb3J5IgrYo9is2YbYqNmKDA

在download_data从PROD和upload_data到localhost之后,键就变成了同一个对象:ahFkZXZ-YXdlc29tZXN0Z2FtZXIYCxIIQ2F0ZWdvcnkiCtij2KzZhtio2YoM

EN

回答 1

Stack Overflow用户

发布于 2013-06-25 18:20:38

您需要在大容量加载器配置中使用适当的转换,例如,如果您使用if,则如下所示

代码语言:javascript
复制
- kind: YourEntity
  connector: csv
  property_map:
    - property: __key__
      external_name: key
      export_transform: transform.key_id_or_name_as_string
      import_transform: transform.none_if_empty(transform.create_foreign_key('YourEntity', key_is_id=True))

    - property: more props...

会在进进出出的路上转换钥匙。

如果你有父母的实体,那么你需要在离开的时候分开,然后在进去的路上重新组合:

代码语言:javascript
复制
- kind: ChildEntity
  connector: csv

  property_map:
    - property: __key__
      external_name: childKey
      import_transform: transform.create_deep_key(('ParentEntity', 'parentKey', True),('ChildEntity', transform.CURRENT_PROPERTY, True))

      export:
        - external_name: parentKey
          export_transform: transform.key_id_or_name_as_string_n(0)

        - external_name: childKey
          export_transform: transform.key_id_or_name_as_string_n(1)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17267299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档