草庐IT

migrate_engine

全部标签

google-app-engine - 是否可以在 Google appengine 标准环境中使用 Gorilla mux 路由器?

有没有办法让appengine.Main()与mux路由器一起工作?以下代码编译但不匹配任何路由。funcmain(){r:=mux.NewRouter()r.HandleFunc("/",indexHandler)http.Handle("/",r)appengine.Main()} 最佳答案 问题的根源是我的app.yaml。我有handlers:-url:/api/.*script:_go_app因此,为了正确匹配路由,我必须更新mux路由器中的路径以匹配完整路径。r.HandleFunc("/api/",indexHandl

google-app-engine - 将 *Key 存储到 GAE 本地数据存储在 DataStoreViewer 中给我错误

我在实体A中有一个*Key引用实体B。我可以put()数据到数据存储而不会出错,但是当尝试从数据存储查看器浏览实体A时,它会出现以下错误:'Incompletekeyfoundforreferenceproperty%s.'%name)BadValueError:Incompletekeyfoundforreferencepropertyds_key.似乎是在指责key不完整。如果我使用NewKey()获取一个完整的key,我需要手动为该key提供一个唯一的字符串或intID,这不是我想要的。我只希望数据存储为我生成一个B的key,并且我保留来自实体A的该key。谢谢

google-app-engine - GAE 在关于将实体一分为二以提高性能。(golang)

我有一个主要包含两组信息的实体帐户。Account{a1//Group1rarelychangea2a3a4...b1//Group2changefrequentlyb2b3b4...}第一组是一般信息,不会更新太频繁,但第二组会经常更改。我想知道我是否应该将第2组提取到另一个实体并将key存储在帐户中,这样当我更新第2组时,我只需要将第2组的数据put()。我担心的是,几乎所有对服务器的操作都需要来自1+2组的数据。如果我将帐户拆分为2,我需要执行两次get()来检索这两个数据。我知道读取表单数据存储比写入便宜得多。但是拆分实体不会减少对put()的调用。在这种情况下,我不知道应该将

google-app-engine - datastore.Get 使用祖父 key

是否有某种方法可以通过不提供key的完整路径,而是提供实体的根父实体来执行datastore.Get?例如,假设有一个SubFolder实体,位于Folder实体下,而该实体本身位于User实体下。这不起作用:subFolderKey:=datastore.NewKey(c,"SubFolder","mySubfolder",0,userKey)datastore.Get(c,subFolderKey,subFolder)即使mySubfolder是userKey的孙代。有没有办法在不指定完整父路径的情况下做到这一点? 最佳答案 不

google-app-engine - Golang 应用引擎的 git 推送和部署

appcfg.py--oauth2update./有效但想用gitpush替换它并部署。成功推送后,appengine提示我的.go文件未编译。appengine是否可以在使用git存储库时编译文件?如果不是,我需要将编译后的文件放在另一个目录中吗? 最佳答案 Thisisaknownissue.请加注星标。现在,您所能做的就是继续使用appcfg.py。如果一直进行OAuth授权很麻烦(或者您有多个帐户),请考虑存储您的刷新token然后执行:appcfg.pyupdate.--oauth2--oauth2_refresh_tok

google-app-engine - AppEngine 的 datastore.Get() 是否不验证所请求 key 的命名空间?

我在go-appengine中使用命名空间和数据存储,大致如下:funcgetThing()*Thing{nctx:=appengine.Namespace(ctx,"whatever")thing:=Thing{}key,err:=datastore.Get(nctx,key,&thing)iferr!=nil{returnnil,err}returnthing,nil}很简单吧?不幸的是,如果事实证明nctx的命名空间与键的命名空间不匹配,它无论如何都会愉快地获取对象。而且AFAICT,没有办法手动获取key的“命名空间”字段来手动验证它。这对我们的应用很重要,因为我们有来自Web

google-app-engine - Go App Engine 获取 API 错误 7(图像 : ACCESS_DENIED)

这似乎是因为没有加载图像服务,但模块已加载。我在开发服务器上没有遇到这些错误。我认为错误来自此调用image.ServingURL(c,blobKey,nil),其中blobKey是storageKey:=r.FormValue("storageKey")blobKey,err:=blobstore.BlobKeyForFile(c,storageKey)而存储key是在GSE中代表一个文件的key。有人知道如何解决这个错误吗? 最佳答案 这可能是因为您拥有的blobKey引用了您的应用无权访问的CloudStorage存储桶。

google-app-engine - 查询相同类型的根实体和子实体时,datastore 是否需要指定祖先?

例如,从提供的appengine-angular-gotodos中获取以下片段:funcgetAllTodos(cappengine.Context)([]Todo,error){todos:=[]Todo{}ks,err:=datastore.NewQuery("Todo").Ancestor(defaultTodoList(c)).Order("Created").GetAll(c,&todos)iferr!=nil{returnnil,err}fori:=0;i如果您将查询更改为不包含.Ancestor(defaultTodoList(c)).,该函数将无法返回任何待办事项结果。

google-app-engine - 将 App Engine 模块(以前的后端)映射到单独的 Go 程序

我们正在使用AppEngine和Go。Google最近弃用了后端,取而代之的是模块。现在,除了使用Python或PHP,使用GoforAppEngine,您不需要将URI映射到脚本。相反,伪脚本_go_app在app.yaml中使用,URI通过您实现的任何路由机制路由到处理程序。关键是,路由发生在已编译的Go程序中。我想知道,这对模块意味着什么。有没有办法将模块映射到不同的Go程序?我希望将代码分开。Google的文档不幸或没有多大帮助:https://developers.google.com/appengine/docs/go/modules/. 最佳答

google-app-engine - 通过指定 GAE 数据存储中的值列表来查询实体

在我的数据存储中,我想通过将相同属性的值指定为Filter来查询一些实体。例如,我将名为Foo的实体定义如下:类型Foo结构{IDint64名称字符串CreatorIdint64}我想检索所有具有1、5、23作为CreatorId的Foo实体。所以我定义了以下查询:q:=datastore.NewQuery("Foo").Filter("CreatorId=",1).Filter("CreatorId=",5).Filter("CreatorId=",23)但已获取零个实体。我查看了文档(https://developers.google.com/appengine/docs/go/d