django-Akamai é uma aplicação Django, que serve como um meio para realizar pedidos de purga de Django aplicativos usando a CCUAPI Akamai. Solicitações de limpeza são realizados a pedido ou, opcionalmente, colocado em uma fila usando aipo.
Configurações necessárias:
AKAMAI_CCUAPI_USERNAME = 'ccuapi_username'
AKAMAI_CCUAPI_PASSWORD = 'ccuapi_password'
AKAMAI_CCUAPI_NOTIFICATION_EMAIL = 'your@email.com'
Há uma variedade de maneiras de usar este aplicativo no seu app.
ATENÇÃO: Atualmente, apenas 100 URLs serão limpos por o pedido, exigindo que você envia sinais adicionais / criar tarefas adicionais / chamada de purga () novamente com pedaços separados de URLs / objetos. O CCUAPI impõe um limite de "cerca de" 100 URLs de 400 caracteres cada, então eu tenho tentado fazer o comportamento transparente e permitir que o usuário final para ver o resultado de cada pedido e responder em conformidade.
Consulte a documentação da Akamai para obter informações completas sobre a API. Este aplicativo vem com uma cópia modificada https://ccuapi.akamai.com/ccuapi-axis.wsdl que trabalha com espuma.
usando sinais
signals.py define dois sinais, um que inicia um pedido de purga diretamente, e um outro que coloca o pedido. O sinal de filas é condicionalmente definida e depende da importação bem-sucedida de PurgeRequestTask, que depende de django-aipo sendo instalado.
Ao enviar esses sinais de outros apps, você pode passar em uma variedade de coisas como o remetente por conveniência. Sender pode ser uma única seqüência de URL, uma lista de cadeias de URL, um objeto Django indivíduo, ou um QuerySet. Se passar em um objeto ou QuerySet, então get_absolute_url () deve ser definida em cada objeto.
Exemplo de sinalização para executar imediatamente o pedido:
>>> From akamai.signals importar purge_request, queue_purge_request
>>> Obj = MyObject.objects.get (pk 3 =)
>>> Obj.get_absolute_url ()
u'http: //www.example.com/blahblah.html '
>>> Purge_request.send (obj)
Ou, para a fila a solicitação usando Aipo:
>>> Queue_purge_request.send (obj)
Usando tarefas
Para usar a tarefa diretamente, PurgeRequestTask importação de tasks.py assim:
>>> From akamai.tasks PurgeRequestTask importação
>>> Obj = MyObject.objects.get (pk 3 =)
>>> Result = PurgeRequestTask.delay (obj)
>>> Resultado de impressão
1
Usando PurgeRequest diretamente
Você também pode importar PurgeRequest de purge.py e usá-lo diretamente. Não que apenas 100 urls será enviado com cada solicitação de purga, devido aos limites estabelecidos pela Akamai. Se você adicionar mais de 100 urls, expurgo () terá de ser chamado até que não permanecem.
Se você não fornecer um nome de usuário e senha ao criar o objeto PurgeRequest, então settings.py do seu projeto será verificado para AKAMAI_CCUAPI_USERNAME e AKAMAI_CCUAPI_PASSWORD. O não fornecimento de informações de login via qualquer mecanismo resulta em um NoAkamaiUsernameProvidedException e / ou NoAkamaiPasswordProvidedException.
Exemplo:
>>> Pr = PurgeRequest (username = "ccuapi_user", password = "1234567")
>>> Pr.add ("http://www.example.com/url-1.html")
>>> Pr.add (u "http://www.example.com/url-2.html")
>>> Req = pr.purge ()
>>> Print pr.last_result
(PurgeResult) {
& Nbsp; resultCode = 100
& Nbsp; resultMsg = "Sucesso".
& Nbsp; sessionID = "987654321"
& Nbsp; estTime = 420
& Nbsp; uriIndex = -1
& Nbsp; modificadores [] =
& Nbsp;}
>>> pr.urls impressão
[]
Requisitos :
- Python
- Django
Comentários não encontrado