2009-01-25 4 views
8

Ich spiele mit Google App Engine und Python und kann die Dateien eines statischen Verzeichnisses nicht auflisten. Unten ist der Code, den ich derzeit verwende.Wie listet man die Dateien in einem statischen Verzeichnis auf?

app.yaml

- url: /data 
    static_dir: data 

Python-Code die Dateien

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))) 

Wenn ich diesen Code ausführen zur Liste lokal auf meinem Rechner, ist alles in Ordnung. Ich habe mein Python-Skript im Stammverzeichnis des Verzeichnisses und es führt die Dateien unter dem Datenverzeichnis. Wenn ich jedoch den exakt gleichen Code in GAE hochlade und ausführe, funktioniert es nicht. Es scheint mir, dass die Verzeichnisstruktur meiner Anwendung nicht genau in Google App Engine repliziert wird. Wo sind die statischen Dateien?

Vielen Dank!

Antwort

7

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

Sie sind nicht da, wo Sie denken, sie sind, setzt GAE statischen Inhalt in GoogleFS, die aus einem CDN entspricht. Die Idee ist, dass statische Inhalte direkt an Ihre Benutzer geliefert werden sollen und nicht als Dateispeicher dienen, den Sie manipulieren können. Außerdem hat GAE 1K Dateilimit und es wäre schwierig, diese Regel zu überwachen, wenn Sie Ihren statischen Dateispeicher manipulieren könnten.

+0

Verbindung tot ...... – Jonny

0

Sie können nicht auf Dateien zugreifen, die als statischer Inhalt programmgesteuert hochgeladen wurden. Sie werden nicht zusammen mit Ihrer App auf dem Server installiert, sondern direkt bereitgestellt. Wenn Sie wirklich darauf zugreifen müssen, können Sie den statischen Datei-Handler entfernen und selbst aufspielen.