一个用于执行Akamai清除请求的Django应用
项目描述
依赖项:requests(必需),django-celery(可选)
django-akamai作为使用Akamai REST API从Django应用执行清除请求的手段。清除请求可按需执行,或者可选地使用Celery将其放入队列。
配置
此库使用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文件。
请参阅Akamai的文档以获取有关API的完整信息
直接发出清除请求
您可以从django_akamai.purge导入PurgeRequest并提供一个或多个要使无效或删除的URL。
注意,Akamai的API指定了请求数量的字节限制,单个清除调用可能需要多个HTTP请求才能完成。
待办事项:讨论速率限制的选项
示例
>>> 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 定义了两个信号,用于直接发起清除请求,或者当Celery可用时,将请求排队。
当从其他应用程序发送这些信号时,您可以方便地传递各种东西作为发送者。发送者可以是单个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)
或者,使用Celery排队请求
>>> queue_purge_request.send(obj)
使用任务
要直接使用任务,从 tasks.py 导入 PurgeRequestTask 如下所示
>>> from akamai.tasks import PurgeRequestTask >>> obj = MyObject.objects.get(pk=3) >>> PurgeRequestTask.delay(obj)
django-akamai-2.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2cdd4e0bc6051d7996ef58d0a175f92e1645e60c4005ae95b82dc4f2707c3761 |
|
MD5 | 1c2c6138dccb687037486996821ae90a |
|
BLAKE2b-256 | 4d0ca3615338ac4727e0fef70bbb4538599ec77677ca6c616744390686355b85 |