2009-01-25 18 views
8

Estoy jugando con Google App Engine y Python y no puedo enumerar los archivos de un directorio estático. A continuación está el código que uso actualmente.¿Cómo se enumeran los archivos en un directorio estático?

app.yaml

- url: /data 
    static_dir: data 

código Python para listar los archivos

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

Cuando ejecuto el código localmente en mi máquina, todo está bien. Tengo mi script de Python en la raíz del directorio y recorre los archivos en el directorio de datos. Sin embargo, cuando cargo y ejecuto exactamente el mismo código en GAE, no funciona. Me parece que la estructura de directorios de mi aplicación no se replica exactamente en Google App Engine. ¿Dónde están los archivos estáticos?

Gracias!

Respuesta

7

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

No son donde se piensa que son, GAE pone el contenido estático en GoogleFS que es equivalente a un CDN. La idea es que el contenido estático debe ser servido directamente a sus usuarios y no actuar como un almacén de archivos que puede manipular. Además, GAE tiene un límite de archivos de 1 K y sería difícil vigilar esta regla si pudieras manipular tu tienda de archivos estáticos.

+0

Enlace muerto ...... – Jonny

2

proyecto Aquí hay una que le permiten buscar en los archivos estáticos: http://code.google.com/p/appfilesbrowser/

Y aquí está obligada lista de recetas para appengine: http://appengine-cookbook.appspot.com/ (que encontré sobre ese proyecto hace aquí en algún momento)

+0

http://code.google.com/p/appfilesbrowser/issues/detail?id=2 + tener más código que lo que es relevante para los cortes de la aplicación en el archivo 1K límite. – David

0

No puede acceder a los archivos cargados como contenido estático mediante programación: no están instalados en el servidor junto con su aplicación, sino que se sirven directamente. Si realmente necesita acceder a ellos, puede eliminar el manejador de archivos estáticos y brindarlos usted mismo.

Cuestiones relacionadas