从 Appengine SDK 迁移到 Cloud SDK 后 运行 AppEngineRun 时没有创建文件的权限
No permission to create files when running with AppEngineRun after migration from Appengine SDK to Cloud SDK
最近从 AppEngine SDK 迁移到 Cloud SDK 后,我遇到了一个问题。虽然 运行 gradle 任务 AppEngineRun 由于权限被拒绝异常(IO 异常)我无法 create/read 文件。
File file = new File("test");
if(!file.exists()) {
directory.mkdir();
}
但是如果我在项目中创建一个模拟主程序并且运行它作为一个 NO-APPEGINE-APP
,我可以 create/read 文件
编辑
我用的是Standard环境,当我还在用AppEngine SDK时,like一般保存在项目根目录下
如果您引用 Web 应用程序目录,您可以选择使用不同于默认目录的另一个目录,使用约定 属性 warDir:"appengineRun: Starts a local development server running your project code. By default the WAR file is created, exploded and used as web application directory each time you run this task. This behavior can be changed by setting the convention property warDir"。
可以从 Gradle App Engine plugin 收集更多详细信息。
对于数据存储,建议您使用 Cloud Datastore、Cloud SQL、Memcache 或 Cloud Storage,因为在云环境中无法访问本地文件系统。
指定运行环境解决了问题
<runtime>java8</runtime>/
虽然我不确定原因。我刚刚投了一个远射。
最近从 AppEngine SDK 迁移到 Cloud SDK 后,我遇到了一个问题。虽然 运行 gradle 任务 AppEngineRun 由于权限被拒绝异常(IO 异常)我无法 create/read 文件。
File file = new File("test");
if(!file.exists()) {
directory.mkdir();
}
但是如果我在项目中创建一个模拟主程序并且运行它作为一个 NO-APPEGINE-APP
,我可以 create/read 文件编辑 我用的是Standard环境,当我还在用AppEngine SDK时,like一般保存在项目根目录下
如果您引用 Web 应用程序目录,您可以选择使用不同于默认目录的另一个目录,使用约定 属性 warDir:"appengineRun: Starts a local development server running your project code. By default the WAR file is created, exploded and used as web application directory each time you run this task. This behavior can be changed by setting the convention property warDir"。 可以从 Gradle App Engine plugin 收集更多详细信息。 对于数据存储,建议您使用 Cloud Datastore、Cloud SQL、Memcache 或 Cloud Storage,因为在云环境中无法访问本地文件系统。
指定运行环境解决了问题
<runtime>java8</runtime>/
虽然我不确定原因。我刚刚投了一个远射。