从Appengine SDK迁移到Cloud SDK后,在使用AppEngineRun运行时无权创建文件

要须心地收汗马,孔孟行世目杲杲。这篇文章主要讲述从Appengine SDK迁移到Cloud SDK后,在使用AppEngineRun运行时无权创建文件相关的知识,希望能为你提供帮助。
我在最近从AppEngine SDK迁移到Cloud SDK后遇到了问题。在使用gradle任务AppEngineRun运行时,由于权限被拒绝异常(IO异常),我无法创建/读取文件。

File file = new File("test"); if(!file.exists()) { directory.mkdir(); }

但是如果我在项目中创建一个mock main并将其作为NO-APPEGINE-APP运行,我就可以创建/读取文件
编辑我正在使用标准环境,当我仍在使用AppEngine SDK时,通常会将其保存在项目的根目录中
答案如果您引用Web应用程序目录,则可以使用约定属性warDir选择使用与默认目录不同的另一个目录:“appengineRun:启动运行项目代码的本地开发服务器。默认情况下会创建WAR文件,每次运行此任务时,都会展开并用作Web应用程序目录。可以通过设置约定属性warDir来更改此行为。更多细节可以从Gradle App Engine plugin收集。对于数据存储,建议您使用Cloud Datastore,Cloud SQL,Memcache或Cloud Storage,因为在云环境中无法访问本地文件系统。
另一答案指定运行时环境解决了问题
< runtime> java8< /runtime> /
【从Appengine SDK迁移到Cloud SDK后,在使用AppEngineRun运行时无权创建文件】虽然我不确定原因。我刚做了一个很长的镜头。

    推荐阅读