8

我正在使用 Google App Engine 和 Python,我无法列出静态目录的文件。下面是我目前使用的代码。

应用程序.yaml

- url: /data
  static_dir: data

列出文件的 Python 代码

myFiles = []
for root, dirs, files in os.walk(os.path.join(os.path.dirname(__file__), 'data/') ):
    for name in files:
        full_name = os.path.join(root, name)
        myFiles.append('%s;%s\n' % (name, datetime.fromtimestamp(os.stat(full_name).st_mtime)))

当我在我的机器上本地运行这段代码时,一切都很好。我的 Python 脚本位于目录的根目录,它遍历数据目录下的文件。但是,当我在 GAE 中上传并运行完全相同的代码时,它不起作用。在我看来,我的应用程序的目录结构并没有完全复制到 Google App Engine 中。静态文件在哪里?

谢谢!

4

3 回答 3

7

https://developers.google.com/appengine/docs/python/config/appconfig#Python_app_yaml_Static_file_handlers

它们不在您认为的位置,GAE 将静态内容放入相当于 CDN 的 GoogleFS 中。这个想法是静态内容旨在直接提供给您的用户,而不是充当您可以操作的文件存储。此外,GAE 有 1K 文件限制,如果您可以操纵静态文件存储,则很难监管此规则。

于 2009-01-25T16:23:31.993 回答
2

这是一个让您浏览静态文件的项目: http ://code.google.com/p/appfilesbrowser/

这里是 appengine 的必看食谱列表:http: //appengine-cookbook.appspot.com/ (我前段时间在这里找到了那个项目)

于 2009-01-25T17:33:25.363 回答
0

您无法以编程方式访问作为静态内容上传的文件 - 它们没有与您的应用程序一起安装在服务器上,而是直接提供。如果您真的需要访问它们,您可以删除静态文件处理程序并自己提供它们。

于 2009-01-25T17:42:51.553 回答