如何列出静态目录中的文件?

时间:2009-01-25 03:59:09

标签: python google-app-engine

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

的app.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中完全复制。 静态文件在哪里?

谢谢!

3 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:2)

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

这里必须看到appengine的食谱清单: http://appengine-cookbook.appspot.com/ (我前段时间在这里发现了这个项目)

答案 2 :(得分:0)

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