使用Google App Engine更新Google Compute Engine上的文件

时间:2014-06-12 21:28:01

标签: python google-app-engine file-transfer google-compute-engine

我正在开展一个涉及使用Google App Engine(GAE)服务器来控制一个或多个Google Compute Engine(GCE)实例的项目。该项目的其余部分运作良好,但我遇到了一个特定方面的问题:文件管理。我希望我的GAE能够在我的GCE实例上编辑一个文件,经过几天的研究,我发现了如何做到这一点。

最直接的例子是:

步骤1)用户将文本输入GAE表格。

步骤2)用户点击按钮表示他们想要提交" GCE的文本

步骤3)GAE用用户的新内容替换GCE上特定(硬编码路径)文本文件的内容。

步骤4)(奖励步骤)GCE注意到文件已更改(通过检测更改或通过GAE在推送新内容时提醒它)并运行脚本来处理新文件。

我知道使用SCP或其他终端命令很容易做到这一点。我已经做到了,这很好。我需要的是GAE直接发送内容的方式,无需我的干预。

我可以完全访问此项目中涉及的所有GAE和GCE实例,并且可以在任一平台上设置所需的任何代码。

提前感谢您的帮助!

4 个答案:

答案 0 :(得分:1)

您可以使用Google Cloud Storage Client将文件加载到云存储桶中,并让GCE实例将文件从GCS复制到本地文件系统。在GCE方面,您可以使用Object Change Notification来实现您的奖金第4步。

答案 1 :(得分:0)

最直接的方法似乎是:

  1. 用户在App Engine实例上提交表单。
  2. App Engine实例使用新数据对GCE实例上的处理程序进行POST调用。
  3. GCE实例更新自己的文件并对其进行处理。

答案 2 :(得分:0)

您可以在GAE中设置一个cron

https://developers.google.com/appengine/docs/python/config/cron?hl=es

直接在您的代码中创建一个SCP作业。

How to scp in python?

我希望这对你有用。

答案 3 :(得分:0)

您可以在表单中设置一个操作URL以指向GCE实例(如果您有多个,则可以进行负载平衡)。然后,所有数据将直接上传到GCE实例,您不必担心将数据从App Engine实例传输到GCE实例。