一个Django应用程序,用于执行Akamai清除请求

django-akamai的Python项目详细描述


依赖项:requests(必需),django-celery(可选)

django akamai是执行来自django应用程序的清除请求的一种方法 使用Akamai Rest API。清除请求是按需执行的,或者,可选地, 用芹菜排成队。

配置

此库使用edgegrid-python客户端进行身份验证。如果 ~/.edgerc配置文件包含一个CCU部分将使用这些凭据 自动

要为edgerc文件指定不同的位置,可以使用以下django 设置:

AKAMAI_EDGERC_FILENAME
AKAMAI_EDGERC_CCU_SECTION

如果希望将值保留在Django设置中,可以指定它们 直接:

AKAMAI_CCU_CLIENT_SECRET AKAMAI_CCU_HOST AKAMAI_CCU_ACCESS_TOKEN AKAMAI_CCU_CLIENT_TOKEN

为了简单和安全起见,建议使用.edgerc文件。

有关该api的完整信息,请参阅Akamai的文档:

https://developer.akamai.com/api/purge/ccu/overview.html

直接发出清除请求

您可以从django_akamai.purge导入PurgeRequest,并为其提供 要失效或删除的一个或多个URL。

请注意,Akamai的API指定了请求数量的字节限制,以及 单个清除调用可能需要多个http请求才能完成。

TOdo:讨论限速选项

示例:

>>> pr = PurgeRequest()
>>> pr.add("http://www.example.com/url-1.html")
>>> pr.add(u"http://www.example.com/url-2.html")
>>> for url_batch, response in pr.purge():
    print(resp.status_code, len(url_batch))
201 2
>>> print pr.urls
[]

使用Django信号

django_akamai.signals定义了两个直接发出清除请求的信号 或者,当芹菜可用时,将请求排队

当从其他应用程序发送这些信号时,您可以传入各种信息 作为方便的发送者发件人可以是一个URL字符串,一个 url字符串、单个django对象或queryset。如果通过一个 对象或queryset,则必须在每个对象上定义get_absolute_url()

立即执行请求的信令示例:

>>> from django_akamai.signals import 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)

或者,使用芹菜将请求排队:

>>> queue_purge_request.send(obj)

使用任务

若要直接使用任务,请从tasks.py导入PurgeRequestTask,然后:

>>> from akamai.tasks import PurgeRequestTask
>>> obj = MyObject.objects.get(pk=3)
>>> PurgeRequestTask.delay(obj)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java解析一个文本文件,如果内容是一种特定的格式,就打印它   java如何使jbutton在另一个组件中执行键盘笔划   连接到独立帐户的java Stripe   java在数据库连接过程中出错。。。初始连接   一个系列JavaFX中特定节点的java集样式   java重建recycler视图会导致它消失   在codechef上提交java Getting runtime(NZEC)时出错   Java类路径设置错误   java如何显示数组中2个数字之间的信息?   java为什么新的GC只有很长的用户时间?   如何解决java。关于此代码的lang.OutOfMemoryError   通过应用程序在Facebook粉丝页面上发布java帖子   java Red5服务器无法启动   系统输出Java读取文本文件外置行   java整数。Parse对excel获取的字符串抛出NumberFormatException   有一个Java数组列表;如何按每个数组的最后一个元素排序?   java需要txt文件中的数据(以逗号分隔)来用现有类中的对象填充arraylist