【问题标题】:Where are the static files located in google app engine?谷歌应用引擎中的静态文件在哪里?
【发布时间】:2015-02-28 06:37:41
【问题描述】:

如果我们使用app.yaml 和说明创建应用引擎:

- url: /static/(.*\.(css))
  static_files: sheet/\1
  upload: sheet/(.*\.(css))

- url: /static/(.*\.(bmp|gif|ico|jpeg|jpg|png))$
  static_files: img/\1
  upload: img/(.*\.(bmp|gif|ico|jpeg|jpg|png))

等等。 我的问题是:

  1. 这些文件上传到哪里?找不到包含文件的静态文件夹 在,数据存储或 blob 或管理员,但引擎正在运行并且所有文件 可从 URL 访问。
  2. 如何删除静态文件夹中的一些文件?
  3. 如何删除所有文件夹并重新开始?
  4. 如果我们更新到新版本(比如 1.1),那么旧版本会发生什么 版本?是否可用或已删除?
  5. 创建相同版本的应用引擎会覆盖文件吗?

这个应用程序引擎是一个很大的谜,即使 PYTHON 是当今很少见的动物。谢谢。

【问题讨论】:

  • 应用引擎没有大的“神秘”。它的所有内容都包含在文档中。我建议您先阅读该内容,然后再返回文档中未涵盖的问题。例如关于静态文件主题cloud.google.com/appengine/docs/python/config/… 哦,不要只浏览文档,好好阅读。诸如“PYTHON 是当今很少见的动物”之类的评论太离谱了,不鼓励参与。

标签: python google-app-engine


【解决方案1】:

请在线查找我的答案:

  1. 这些文件上传到哪里?

ANS : 这些文件由 google 上传并保存在不同的位置,如果不使用 app.yaml 中的特殊指令,您或您的 python 脚本无法直接访问这些文件。

在您上传应用的笔记本电脑/PC 上,它将位于您的应用源目录中,但一旦上传,GAE 就会以不同的方式存储它。

当在 app.yam 中提到此类文件时(就像您所做的那样),不需要任何处理程序(python 子例程来打开和服务它们)。 GAE 已内置处理程序来为它们服务。正如您所提到的,您可以像访问它们一样访问它们,就像它们实际上驻留在您的应用程序源目录中一样。

  1. 找不到包含文件的静态文件夹、数据存储或 blob 或管理员, 但引擎正在运行,所有文件都可以从 URL 访问。如何 删除静态文件夹中的一些文件?

ANS : 这个问题的第一部分在 Q1 的回答中得到了回答。

要删除任何这些文件或目录,只需将它们删除(或将它们移到外部)您笔记本电脑/PC 上的应用程序源目录即可。然后“部署”应用程序一次,以使更改反映在生产应用程序 ( web ) 中。

  1. 如何删除所有文件夹并重新开始?

回答:请参阅第二季度的答案。

  1. 如果我们更新到新版本(比如 1.1),那么旧版本会发生什么 版本?是否可用或已删除?

ANS:如果我理解正确,您的意思是在 app.yaml 文件中更新您的应用版本。

无论任何代码更改(您可能将其称为应用程序的版本升级),这些文件都会保持不变。它们仍然可以以相同的方式使用和访问。

  1. 创建相同版本的应用引擎会覆盖文件吗?

ANS:我相信你的意思是:“如果我从头开始为这个应用程序创建一个不同的源目录。添加代码文件但不添加静态文件(或目录),然后“部署“。我之前部署的静态文件还保留吗?”

答案是“不”。这是因为 GAE 不知道您是从头开始创建另一个目录,还是删除并对现有目录进行了所有更改。这对 GAE 或您的应用程序都没有关系。只要您从另一个源目录部署相同的应用程序 ID,对于相同版本的应用程序,该源目录的代码和静态文件就是您在生产应用程序 ( web ) 中拥有的全部内容。

我希望它有所帮助。

【讨论】:

    【解决方案2】:

    关于问题 2 需要进一步说明;例如我的 app.yaml 是:

    应用程序:app-id

    版本:1

    运行时:python27

    api_version: 1

    线程安全:是的

    default_expiration: "7d"

    • 网址:/video/(.*.mp4)

      static_files: video/\1

      mime_type:视频/mp4

      上传:视频/(.*.mp4)

    并且目录 video 包含一个文件 best.mp4,通过 app-id.appspot.com/video/best.mp4 部署和访问,因此删除:

    我需要删除视频目录(使用 best.mp4)并部署删除

    • 网址:/video/(.*.mp4)

      static_files: video/\1

      mime_type:视频/mp4

      上传:视频/(.*.mp4)

    我的 app.yaml 文件中的声明

    添加另一个 mp4 文件

    我需要将这个新的 mp4 文件重命名为 best.mp4 并再次部署应用程序??


    当前应用程序.YAML

    应用程序:app-id

    版本:1

    运行时:python27

    api_version: 1

    线程安全:是的

    default_expiration: "7d"

    处理程序:

    • 网址:/static/(..html)

      static_files: 静态/\1

      上传:静态/(..html)

    • 网址:/static/(..(css))

      static_files: 静态/\1

      上传:静态/(..(css))

    • 网址:/static/(..(bmp|gif|ico|jpeg|jpg|png))$

      static_files: 静态/\1

      上传:静态/(..(bmp|gif|ico|jpeg|jpg|png))

    • 网址:/static/(..(bmp|gif|ico|jpeg|jpg|png))$

      static_files: 静态/\1

      上传:静态/(..(bmp|gif|ico|jpeg|jpg|png))

    • 网址:/static/(..mp4)

      static_files: 静态/\1

      mime_type: 静态/mp4

      上传:静态/(..mp4)

    • 网址:.* 脚本:main.app

    图书馆:

    • 名称:webapp2

      版本:“2.5.2”


    以前的 APP.YAML(不确定)

    应用程序:app-id

    版本:1

    运行时:python27

    api_version: 1

    线程安全:是的

    default_expiration: "7d"

    处理程序:

    • 网址:/static/(..html)

      static_files: 静态/\1

      上传:静态/(..html)

    • 网址:/static/(..(css))

      static_files: 静态/\1

      上传:静态/(..(css))

    • 网址:/static/(..(bmp|gif|ico|jpeg|jpg|png))$

      static_files: 静态/\1

      上传:静态/(..(bmp|gif|ico|jpeg|jpg|png))

    • 网址:/static/(..(bmp|gif|ico|jpeg|jpg|png))$

      static_files: 静态/\1

      上传:静态/(..(bmp|gif|ico|jpeg|jpg|png))

    • url: /(..mp4) (导致文件出现在根目录)*

      static_files: /\1

      mime_type: /mp4

      上传:/(..mp4)

    • 网址:.* 脚本:main.app

    图书馆:

    • 名称:webapp2

      版本:“2.5.2”

    【讨论】:

    • 如果您打算从您的应用程序中删除一个mp4 文件,只需从您的video 目录(在您的笔记本电脑/PC 上的应用程序源目录中)删除该.mp4 文件并部署您的应用程序.如果您想在您的应用程序中添加多个.mp4 文件,请将它们全部放在video 目录中(在您的笔记本电脑/PC 上的应用程序源目录中)并部署您的应用程序。 *.mp4,在app.yaml 中,确保所有.mp4 文件都从您的应用上传和提供。
    • 如果您有很多 .mp4 文件要从您的应用程序中提供,最好使用 GCS 或 Blobstore 上传文件。
    • 附带说明,我了解到您是此论坛的新手,如果这些查询无法放入 cmets,建议您使用更多查询更新您现有的问题。
    • 好的,一个 .mp4 文件(错误地)部署在 url app-id.appspot.com 的根目录,然后我从根目录(在我的笔记本电脑/PC 上的应用程序源目录内)删除了这个文件并创建了新目录 video 并将我所有的新 .mp4 文件(不是以前的文件)放在那里,在我的 app.yaml 中进行了调整并再次部署。令我惊讶的是,视频中的所有文件都可以访问,但根目录中的旧 .mp4 也可以访问。(我做错了,可能是 4 个文件中的任何一个(存在于 pc 上的 app-id 目录中),即 app .yaml 或 index.yaml 或 main.py 或 main.pyc 需要重命名)
    • 现在应该无法访问根目录下的.mp4 文件。您能否在您的问题中发布整个app.yaml 文件以进行更多检查?这可能有助于某人指出错误。
    猜你喜欢
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 2017-05-31
    • 2014-08-02
    • 2012-06-05
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    相关资源
    最近更新 更多