我正在将文件写入 Google 应用引擎管理的 vm(灵活环境)。我已将代码部署到云端。该代码打开文件并写入它而不会显示权限错误等错误。但是,我尝试打开文件的另一个代码以“没有这样的文件或目录”失败。
我已经打印了位置目录,所以我使用了 ssh 命令,也找不到托管 vm 中的文件。而且我找不到任何有关将文件写入托管 VM 的本地存储的文档。
那么如何将它写入托管虚拟机呢?默认存储位置是什么?为什么我找不到文件?
我正在将文件写入 Google 应用引擎管理的 vm(灵活环境)。我已将代码部署到云端。该代码打开文件并写入它而不会显示权限错误等错误。但是,我尝试打开文件的另一个代码以“没有这样的文件或目录”失败。
我已经打印了位置目录,所以我使用了 ssh 命令,也找不到托管 vm 中的文件。而且我找不到任何有关将文件写入托管 VM 的本地存储的文档。
那么如何将它写入托管虚拟机呢?默认存储位置是什么?为什么我找不到文件?
您在 VM 中找不到文件的原因是因为 VM 正在运行 Docker 容器,而您的应用实际上位于该容器中。如果您真的想要,您可以docker exec -it <container-name> -- /bin/bash
在容器内四处寻找,然后您应该会看到您的文件(用于docker ps
查找容器 ID)。
在 App Engine flexible(托管 VM 的新名称)上,您的代码可以跨多个容器进行扩展,因此您写入的文件不能保证以后可以访问。您可以处理一些对某些 /tmp 文件的写入,但仅此而已。将任何数据写入 Cloud Datastore、Cloud SQL、Memcache 或 Cloud Storage 会更好。