我正在玩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中完全复制。 静态文件在哪里?
谢谢!
答案 0 :(得分:7)
他们不在你认为的地方,GAE将静态内容放入GoogleFS,相当于CDN。我们的想法是,静态内容旨在直接提供给您的用户,而不是您可以操作的文件存储。此外,GAE有1K文件限制,如果您可以操纵静态文件存储,则很难监管此规则。
答案 1 :(得分:2)
这是一个允许您浏览静态文件的项目: http://code.google.com/p/appfilesbrowser/
这里必须看到appengine的食谱清单: http://appengine-cookbook.appspot.com/ (我前段时间在这里发现了这个项目)
答案 2 :(得分:0)
您无法以编程方式访问作为静态内容上传的文件 - 它们不会与您的应用一起安装在服务器上,而是直接提供。如果您确实需要访问它们,可以删除静态文件处理程序并自行提供它们。