Package google.appengine.ext.zipserve

Résumé

Diffuser des fichiers statiques à partir d'un fichier zip.

Il s'agit d'une solution pour les applications qui souhaitent diffuser des milliers de petits fichiers statiques tout en respectant la limite de 1 000 fichiers.

Le cas d'utilisation le plus simple est piloté uniquement à partir de la section "handlers" dans app.yaml. Exemple :

  • - url: /images/.* script: $PYTHON_LIB/google/appengine/ext/zipserve

Cela appelle une méthode main() dans zipserve/__init__.py. Ce code prend ensuite le chemin de l'URL et recherche un fichier .zip sous le premier composant du chemin, dans le cas présent "images.zip" dans le répertoire de travail de l'application. Si elle est trouvée, elle diffusera tous les chemins correspondants situés en dessous du fichier ZIP. En d'autres termes, /images/foo/icon.gif est mappé à foo/icon.gif dans le fichier zip images.zip.

Vous pouvez également personnaliser le comportement en ajoutant une ligne personnalisée à votre appel WSGIApplication() :

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

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

])

Vous pouvez transmettre max_age=N à l'appel make_zip_handler() pour remplacer le délai d'expiration en secondes, dont la valeur par défaut est 600.

Pour personnaliser davantage le comportement, vous pouvez sous-classer ZipHandler et remplacer la méthode get(), ou le remplacer et appeler directement ServeFromZipFile().

Notez que, par défaut, un contrôle du cache est ajouté pour que ces pages puissent être mises en cache même si elles nécessitent une authentification. Si ce n'est pas ce que vous souhaitez, remplacez ZipHandler.SetCachingHeaders().

Contenus

classe google.appengine.ext.zipserve.ZipHandlersource

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

Gestionnaire de requêtes diffusant des fichiers statiques à partir de fichiers zip

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

Assistant du gestionnaire de requêtes GET.

Cela diffuse le contenu du fichier "name" depuis le fichier zip "zipfilename", tout en journalisant un message et en renvoyant une réponse 404 si le fichier ZIP ne peut pas être ouvert ou si le fichier nommé ne peut pas être lu à partir de celui-ci.

Paramètres
  • zipfilename : nom du fichier zip

  • name : nom à l'intérieur du fichier zip.

SetCachingHeaders()source

Assistant permettant de définir les en-têtes de mise en cache.

Remplacez cette valeur pour personnaliser les en-têtes au-delà de la définition de MAX_AGE.

get(prefix, name)source

Gestionnaire de requêtes GET.

En règle générale, les arguments sont transmis par les groupes correspondants dans le format d'URL transmis à WSGIApplication().

Paramètres
  • préfixe : nom du fichier zip sans le suffixe ".zip".

  • name : nom à l'intérieur du fichier zip.

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

Programme principal.

Ce code est appelé lorsque ce package est référencé à partir d'un fichier app.yaml.

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

Fonction de fabrique permettant de créer une instance ZipHandler personnalisée.

Paramètres
  • zipfilename : nom du fichier zip

  • max_age : délai d'expiration facultatif. Sa valeur par défaut est ZipHandler.MAX_AGE.

  • public : indicateur public facultatif. Sa valeur par défaut est ZipHandler.PUBLIC.

Renvoie

Une sous-classe ZipHandler.