Paquete google.appengine.ext.zipserve

Resumen

Entregar archivos estáticos desde un archivo ZIP.

Esta es una solución para las aplicaciones que desean entregar cientos de pequeños archivos estáticos sin perder el límite de 1,000 archivos.

El caso práctico más simple se controla solo desde la sección de controladores en app.yaml, p.ej.:

  • url: /images/.* secuencia de comandos: $PYTHON_LIB/google/appengine/ext/zipserve

Esto invocará un main() dentro de zipserve/__init__.py. Este código tomará la ruta de acceso de la URL y buscará un archivo ZIP que esté en el primer componente de la ruta, en este caso "images.zip" en el directorio de trabajo de la app. Si se encuentra, se entregarán rutas de acceso coincidentes debajo del archivo ZIP. En otras palabras, /images/foo/icon.gif se asignaría a foo/icon.gif en el archivo zip images.zip.

Para personalizar el comportamiento, puedes agregar una línea personalizada a la invocación de WSGIApplication():

def main():
app = webapp.WSGIApplication(
[(‘/’, MainPage),

(‘/static/(.*)’, zipserve.make_zip_handler(‘staticfiles.zip’)),

])

Puedes pasar max_age=N a la llamada make_zip_handler() para anular la fecha de vencimiento en segundos, que se configura de forma predeterminada en 600.

Para personalizar aún más el comportamiento, puedes subclasificar ZipHandler y anular el método get(), o anularlo y llamar a ServeFromZipFile() directamente.

Ten en cuenta que, de forma predeterminada, se agrega un control de caché que permite que estas páginas se puedan almacenar en caché, incluso si requieren autenticación. Si esto no es lo que quieres, anula ZipHandler.SetCachingHeaders().

Contenido

clase google.appengine.ext.zipserve.ZipHandlersource

Bases: google.appengine.ext.webapp._webapp25.RequestHandler

Controlador de solicitudes que entrega archivos estáticos desde archivos zip.

MAX_AGE = 600
PUBLIC = True
ServeFromZipFile(zipfilename, name)source

Ayuda para el controlador de solicitudes GET.

Esto entrega el contenido del archivo "name" del archivo "zipfilename", el registro de un mensaje y la muestra de una respuesta 404 si el zipfile no se puede abrir o si el archivo con nombre no se puede leer desde él.

Parámetros
  • zipfilename: El nombre del archivo ZIP.

  • name: El nombre dentro del archivo ZIP.

SetCacheHeaders()source

Ayuda para establecer los encabezados de almacenamiento en caché.

Anula esto para personalizar los encabezados más allá de configurar MAX_AGE.

get(prefijo, nombre)source

controlador GET request.

Por lo general, los argumentos se pasan desde los grupos coincidentes en el patrón de URL que se pasa a WSGIApplication().

Parámetros
  • prefijo: El nombre del archivo sin el sufijo .zip.

  • name: El nombre dentro del archivo ZIP.

zipfile_cache = {}
google.appengine.ext.zipserve.main()source

Programa principal.

Se invoca cuando se hace referencia a este paquete desde app.yaml.

google.appengine.ext.zipserve.make_zip_handler(zipfilename, max_age=None, public=None)source

Función de fábrica para construir una instancia de ZipHandler personalizada.

Parámetros
  • zipfilename: El nombre de archivo de un zipfile.

  • max_age: hora de vencimiento opcional. el valor predeterminado es ZipHandler.MAX_AGE.

  • public: Marca pública opcional; La configuración predeterminada es ZipHandler.PUBLIC.

Muestra

Una subclase ZipHandler.