Pacote google.appengine.ext.zipserve

Resumo

Disponibiliza arquivos estáticos a partir de um arquivo zip.

Esta é uma solução para aplicativos que disponibilizam milhares de pequenos arquivos estáticos enquanto permanecem no limite de 1.000 arquivos.

O caso de uso mais simples é orientado puramente da seção de gerenciadores no arquivo app.yaml, por exemplo:

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

Um main() dentro de zipserve/__init__.py seria chamado. Esse código procuraria por um arquivo .zip no primeiro componente do caminho do URL, neste caso o arquivo “images.zip” no diretório de trabalho do aplicativo. Caso encontrado, ele veicula os caminhos correspondentes abaixo a partir do arquivo zip. Em outras palavras, /images/foo/icon.gif seria mapeado para foo/icon.gif no arquivo zip images.zip.

Também é possível personalizar o comportamento adicionando uma linha personalizada à chamada de WSGIApplication():

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

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

])

Você pode transmitir max_age=N para a chamada de make_zip_handler() para substituir o tempo de expiração em segundos, em que o padrão é 600.

Para personalizar ainda mais o comportamento, é possível subclassificar o ZipHandler e substituir o método get() ou substituí-lo e chamar diretamente o ServeFromZipFile().

Por padrão, é adicionado um controle de cache que torna essas páginas armazenáveis em cache, mesmo que exijam autenticação. Se isso não for o que você quer, substitua o ZipHandler.SetCachingHeaders().

Índice

class google.appengine.ext.zipserve.ZipHandlersource

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

Solicita o gerenciador que veicula arquivos estáticos de arquivos zip.

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

Auxiliar do gerenciador de solicitações GET.

Veicula o conteúdo do arquivo 'name' do arquivo zip 'zipfilename', registrando uma mensagem e retornando uma resposta 404 se o arquivo zip não puder ser aberto ou o arquivo nomeado não puder ser lido a partir dele.

Parâmetros
  • zipfilename: o nome do arquivo zip.

  • name: o nome dentro do arquivo zip.

SetCachingHeaders()Fonte

Auxiliar para definir os cabeçalhos de armazenamento em cache.

Substitua-o para personalizar os cabeçalhos além da configuração de MAX_AGE.

get(prefix, name)Fonte

Gerenciador de solicitações GET.

Normalmente, os argumentos são transmitidos dos grupos correspondentes no padrão de URL transmitido para WSGIApplication().

Parâmetros
  • prefixo: o zipfilename sem o sufixo .zip.

  • name: o nome dentro do arquivo zip.

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

Programa principal.

Chamado quando este pacote é referenciado a partir do arquivo app.yaml.

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

Função de fábrica para criar uma instância personalizada do ZipHandler.

Parâmetros
  • zipfilename: o nome de arquivo de um arquivo zip.

  • max_age: prazo de validade opcional o padrão é ZipHandler.MAX_AGE.

  • public: sinalização pública opcional. O padrão é ZipHandler.PUBLIC.

Retorna

Uma subclasse de ZipHandler.