2009-01-25 44 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

您無法以編程方式訪問以靜態內容上傳的文件 - 它們不會與您的應用一起安裝在服務器上,而是直接提供。如果你真的需要訪問它們,你可以刪除靜態文件處理程序並自己提供它們。

相關問題