2016-05-24 38 views
2

我正在向Google应用引擎托管虚拟机(灵活环境)写入文件。我已将代码部署到云中。代码打开文件,并写入它没有显示错误,如权限错误。但是,我的另一个代码试图打开文件失败,“没有这样的文件或目录”。如何在Google应用引擎托管虚拟机上写入本地文件

我已经打印了位置目录,所以我用ssh命令,也找不到管理vm里面的文件。而且我找不到有关将文件写入托管虚拟机本地存储的文档。

那么如何将其写入管理虚拟机?什么是默认存储位置?为什么我找不到该文件?

+0

该文件是否可以写入另一个已被销毁的实例?作为开始,我会写入'/ tmp',这通常是可写入所有用户的。 – konqi

+0

我试过了,也找不到那里的文件。它在码头集装箱 – Weiming

回答

1

在VM内找不到文件的原因是因为VM正在运行Docker容器,而您的应用实际上是在该容器内。如果你真的想,你可以docker exec -it <container-name> -- /bin/bash在容器内部晃动,然后你应该看到你的文件(使用docker ps找到容器ID)。

在App Engine灵活(托管虚拟机的新名称)上,您的代码可以跨多个容器进行缩放,因此不会承诺您稍后可以访问您写入的文件。你可以脱离处理一些写入一些/ tmp文件,但没有更多。将数据写入Cloud Datastore,Cloud SQL,Memcache或Cloud Storage等任何数据都会更好。

+0

感谢您的答复。您是否有办法使用cloudstorage库而不是gcloud存储库将文件写入Managed VM中的云存储? – Weiming

+0

你指的是哪个云存储库? –

+0

这是一个'git clone https:// github.com/GoogleCloudPlatform/appengine-gcs-client.git'。有关于如何在托管虚拟机中使用'from gcloud import storage'的教程,但不包括那个库。 – Weiming

相关问题