如何写入 Google App Engine 管理的 VM 上的本地文件
How to write to local files on Google app engine managed VM
我正在将文件写入 Google App Engine 管理的虚拟机(灵活环境)。我已经将代码部署到云端。代码打开文件并写入文件,而不会显示权限错误等错误。但是,我尝试打开文件的另一个代码因 "No such file or directory".
而失败
我已经打印了位置目录,所以我使用了ssh命令,也找不到托管虚拟机中的文件。而且我找不到任何有关将文件写入托管 VM 的本地存储的文档。
那么如何将其写入托管虚拟机?默认存储位置是什么?为什么我找不到文件?
您在 VM 中找不到该文件的原因是因为 VM 是 运行 一个 Docker 容器,而您的应用程序实际上位于该容器内。如果您真的想要,可以 docker exec -it <container-name> -- /bin/bash
在容器内部四处查看,然后您应该会看到您的文件(使用 docker ps
查找容器 ID)。
在 App Engine 灵活(托管 VM 的新名称)上,您的代码可以跨多个容器扩展,因此无法保证您写入的文件以后可以访问。您可以摆脱处理对某些 /tmp 文件的一些写入,但不会更多。将任何数据写入 Cloud Datastore、Cloud SQL、Memcache 或 Cloud Storage 之类的东西会更好。
我正在将文件写入 Google App Engine 管理的虚拟机(灵活环境)。我已经将代码部署到云端。代码打开文件并写入文件,而不会显示权限错误等错误。但是,我尝试打开文件的另一个代码因 "No such file or directory".
而失败我已经打印了位置目录,所以我使用了ssh命令,也找不到托管虚拟机中的文件。而且我找不到任何有关将文件写入托管 VM 的本地存储的文档。
那么如何将其写入托管虚拟机?默认存储位置是什么?为什么我找不到文件?
您在 VM 中找不到该文件的原因是因为 VM 是 运行 一个 Docker 容器,而您的应用程序实际上位于该容器内。如果您真的想要,可以 docker exec -it <container-name> -- /bin/bash
在容器内部四处查看,然后您应该会看到您的文件(使用 docker ps
查找容器 ID)。
在 App Engine 灵活(托管 VM 的新名称)上,您的代码可以跨多个容器扩展,因此无法保证您写入的文件以后可以访问。您可以摆脱处理对某些 /tmp 文件的一些写入,但不会更多。将任何数据写入 Cloud Datastore、Cloud SQL、Memcache 或 Cloud Storage 之类的东西会更好。