2009-01-25 17 views
8

我在玩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中。 静态文件在哪里?

谢谢!

回答

7

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

,你认为他们是他们不是,GAE把静态内容到GoogleFS这相当于一个CDN的。这个想法是,静态内容意味着直接提供给您的用户,而不是您可以操作的文件存储。此外,GAE具有1K文件限制,如果您可以操纵静态文件存储,则很难警惕此规则。

+0

链接已死...... – Jonny 2014-04-02 04:51:44

0

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

相关问题