Dependencies: requests (required), django-celery (optional)
django-akamai serves as a means to perform purge requests from Django apps using the Akamai REST API. Purge requests are performed on demand or, optionally, placed in a queue using Celery.
Configuration
This library uses the edgegrid-python client for authentication. If the ~/.edgerc config file contains a CCU section those credentials will be used automatically.
To specify a different location for the edgerc file, you may use these Django settings:
AKAMAI_EDGERC_FILENAME AKAMAI_EDGERC_CCU_SECTION
If you prefer to keep the values in your Django settings you may specify them directly:
AKAMAI_CCU_CLIENT_SECRET AKAMAI_CCU_HOST AKAMAI_CCU_ACCESS_TOKEN AKAMAI_CCU_CLIENT_TOKEN
For simplicity and security use of the .edgerc file is recommended.
Consult Akamai’s documentation for full information about the API:
Directly issuing purge requests
You may import PurgeRequest from django_akamai.purge and provide it with one or more URLs to invalidate or delete.
Note that Akamai’s API specifies a byte limit on the number of requests and a single purge call may require multiple HTTP requests to complete.
TODO: discuss options for rate-limiting
Example:
>>> 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
[]
Using Django Signals
django_akamai.signals defines two signals to directly issue a purge request or, when Celery is available, queue the request.
When sending these signals from other apps, you can pass in a variety of things as the sender for convenience. Sender can be a single URL string, a list of URL strings, an individual Django object, or a QuerySet. If passing in an object or QuerySet, then get_absolute_url() must be defined on every object.
Example of signalling to immediately perform the request:
>>> 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)
Or, to queue the request using Celery:
>>> queue_purge_request.send(obj)
Using Tasks
To use the task directly, import PurgeRequestTask from tasks.py thusly:
>>> from akamai.tasks import PurgeRequestTask >>> obj = MyObject.objects.get(pk=3) >>> PurgeRequestTask.delay(obj)
Release files for django-akamai 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django-akamai-2.0.0.tar.gz | 6.7 kB | Details |
Release files / django-akamai-2.0.0.tar.gz
| Download URL | django-akamai-2.0.0.tar.gz |
|---|---|
| Size | 6.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2cdd4e0bc6051d7996ef58d0a175f92e1645e60c4005ae95b82dc4f2707c3761
|
|
BLAKE2b-256 checksum How to use checksums |
4d0ca3615338ac4727e0fef70bbb4538599ec77677ca6c616744390686355b85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |