CKAN extension that overwrites the upload and download of the resources. The extension breaks the resources into chunks and streams the response. This extension is usefull if We want to configure the chunk size of upload and download in order to use the server resources (RAM and CPU) in more efficient way.
Compatibility with core CKAN versions:
CKAN version | Compatible? |
---|---|
2.6 and earlier | not tested |
2.7 | not tested |
2.8 | not tested |
2.9 | Yes |
To install ckanext-big-resources:
-
Activate your CKAN virtual environment, for example:
. /usr/lib/ckan/default/bin/activate
-
Clone the source and install it on the virtualenv
git clone https://github.com/keitaroinc/ckanext-big-resources.git cd ckanext-big-resources python setup.py develop pip install -r dev-requirements.txt
-
Add
big_resources
to theckan.plugins
setting in your CKAN config file (by default the config file is located at/etc/ckan/default/ckan.ini
). -
Restart CKAN. For example if you've deployed CKAN with Apache on Ubuntu:
sudo service apache2 reload
The following settings (which set the upload and the download chunk in bytes) should be present in the ckan.ini file.
ckanext.big_resources.chunk_upload = number_in_bytes
ckanext.big_resources.chunk_download = number_in_bytes
If thease settings are not found in the ckan.ini than the default value will be set by the extension. The default value for both upload and download of the resource is 2048
To install ckanext-big-resources for development, activate your CKAN virtualenv and do:
git clone https://github.com/keitaroinc/ckanext-big-resources.git
cd ckanext-big-resources
python setup.py develop
pip install -r dev-requirements.txt
To run the tests, do:
pytest --ckan-ini=test.ini
This extension can not be combined together with a cloud storage CKAN extension (like ckanext-cloudstorage or ckanext-s3filestore). If the CKAN is extended with a cloud storage extensions than the upload and download of the resources is taken over by the cloud storage extension and the ckanext-big-resources becomes obsolete.
If ckanext-big-resources should be available on PyPI you can follow these steps to publish a new version:
-
Update the version number in the
setup.py
file. See PEP 440 for how to choose version numbers. -
Make sure you have the latest version of necessary packages:
pip install --upgrade setuptools wheel twine
-
Create a source and binary distributions of the new version:
python setup.py sdist bdist_wheel && twine check dist/*
Fix any errors you get.
-
Upload the source distribution to PyPI:
twine upload dist/*
-
Commit any outstanding changes:
git commit -a git push
-
Tag the new release of the project on GitHub with the version number from the
setup.py
file. For example if the version number insetup.py
is 0.0.1 then do:git tag 0.0.1 git push --tags