{
"info": {
"author": "Alen Mujezinovic",
"author_email": "alen@caffeinehit.com",
"bugtrack_url": null,
"classifiers": [
"Environment :: Web Environment",
"Framework :: Django",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python"
],
"description": "django-queued-storage\n=====================\n\nThis storage backend enables having a local and a remote storage\nbackend. It will save any file locally and queue a task to transfer it\nsomewhere else.\n\nIf the file is accessed before it's transferred, the local copy is\nreturned.\n\nThe default tasks use `Celery `_ for queing\ntransfer tasks but is agnostic about your choice.\n\nInstallation\n------------\n\n::\n\n pip install django-queued-storage\n\nConfiguration\n-------------\n\n- Follow the configuration instructions for\n `django-celery `_\n- Set up a `caching\n backend `_\n- Add ``queued_storage`` to your ``INSTALLED_APPS`` tuple\n\nUsage\n-----\n\nThe ``QueuedRemoteStorage`` can be used as a drop-in replacement\nwherever ``django.core.file.storage.Storage`` might otherwise be\nrequired.\n\nThis example is using\n`django-storages `_ for the\nremote backend:\n\n::\n\n from django.db import models\n from queued_storage.storage import QueuedRemoteStorage\n\n class MyModel(models.Model):\n image = ImageField(storage = QueuedRemoteStorage(\n local = 'django.core.files.storage.FileSystemStorage',\n remote = 'storages.backends.s3boto.S3BotoStorage'))\n\nBackends\n--------\n\n- ``queued_storage.backend.QueuedRemoteStorage``:\n Base class for queued storages. You can use this to specify your own\n backends.\n\n- ``queued_storage.backend.DoubleFilesystemStorage``:\n Used for testing, but can be handy if you want uploaded files to be\n stored in two places. Example:\n\n ::\n\n image = ImageField(\n storage = DoubleFilesystemStorage(\n local_kwargs = {'location': '/backup'},\n remote_kwargs = {'location': settings.MEDIA_ROOT}))\n\n- ``queued_storage.backend.S3Storage``:\n Shortcut for the above example.\n\n ::\n\n image = ImageField(storage = S3Storage())\n\n- ``queued_storage.backend.DelayedStorage``:\n This backend does *not* transfer files to the remote location\n automatically.\n\n ::\n\n image = ImageField(storage = DelayedStorage(\n 'django.core.files.storage.FileSystemStorage',\n 'storages.backends.s3boto.S3BotoStorage'))\n\n >>> m = MyModel(image = File(open('image.png')))\n >>> # Save locally:\n >>> m.save() \n >>> # Transfer to remote location:\n >>> m.file.storage.transfer(m.file.name) \n\nUseful if you want to do preprocessing\n\nFields\n------\n\n- ``queued_storage.backend.RemoteFileField``:\n Tiny wrapper around any ``QueuedRemoteStorage``, provides a\n convenient method to transfer files. The above ``DelayedStorage``\n example would look like this:\n\n ::\n\n image = RemoteFileField(storage = DelayedStorage(\n 'django.core.files.storage.FileSystemStorage',\n 'storages.backends.s3boto.S3BotoStorage'))\n\n >>> m = MyModel(image = File(open('image.png')))\n >>> # Save locally:\n >>> m.save() \n >>> # Transfer to remote location:\n >>> m.file.transfer()\n\nTasks\n-----\n\n- ``queued_storage.backend.Transfer``:\n The default task. Transfers to a remote location. The actual\n transfer is implemented in the remote backend.\n\n- ``queued_storage.backend.TransferAndDelete``:\n Once the file was transferred, the local copy is deleted.\n\nTo create new tasks, do something like this:\n\n::\n\n from celery.registry import tasks\n from queued_storage.backend import Transfer\n\n class TransferAndDelete(Transfer):\n def transfer(self, name, local, remote, **kwargs):\n result = super(TransferAndDelete, self).transfer(name, local, remote, **kwargs)\n\n if result:\n local.delete(name)\n\n return result\n\n tasks.register(TransferAndDelete)\n\nThe result is ``True`` if the transfer was successful, else ``False``\nand the task is retried.\n\nIn case you don't want to use Celery, have a look\n`here `_.\n\nTo use a different task, pass it into the backend:\n\n::\n\n image = models.ImageField(storage = S3Storage(task = TransferAndDelete))\n\nSettings\n--------\n\n- ``QUEUED_STORAGE_CACHE_KEY``:\n Use a different key for caching.\n\n- ``QUEUED_STORAGE_RETRIES``:\n How many retries should be attempted before aborting.\n\n- ``QUEUED_STORAGE_RETRY_DELAY``:\n The delay between retries.\n\nRELEASE NOTES\n=============\n\nv0.3 - *BACKWARDS INCOMPATIBLE*\n\n- Added tests\n- Added ``S3Storage`` and ``DelayedStorage``\n- Added ``TransferAndDelete`` task\n- Classes renamed to be consistent",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "UNKNOWN",
"keywords": null,
"license": "UNKNOWN",
"maintainer": null,
"maintainer_email": null,
"name": "django-queued-storage-fork",
"package_url": "https://pypi.org/project/django-queued-storage-fork/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/django-queued-storage-fork/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "UNKNOWN"
},
"release_url": "https://pypi.org/project/django-queued-storage-fork/0.3/",
"requires_dist": null,
"requires_python": null,
"summary": "Allows for files to be uploaded locally and then transferred to a remote location. This is a fork because the original is not online.",
"version": "0.3"
},
"last_serial": 790394,
"releases": {
"0.3": [
{
"comment_text": "",
"digests": {
"md5": "fe0a3d4bd4ad4b4cf4fa0ac6af8630d5",
"sha256": "5db79fa99a9074ea6dc1cfb2974bf1fc7322f614e29093d496f8791b9b8f38fd"
},
"downloads": -1,
"filename": "django-queued-storage-fork-0.3.tar.gz",
"has_sig": false,
"md5_digest": "fe0a3d4bd4ad4b4cf4fa0ac6af8630d5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 37172,
"upload_time": "2011-09-12T11:41:01",
"url": "https://files.pythonhosted.org/packages/6d/c2/d8a5d35fa2a719c0e83144be7155ab5aa59fe501fc484b5eeca34060b72c/django-queued-storage-fork-0.3.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "fe0a3d4bd4ad4b4cf4fa0ac6af8630d5",
"sha256": "5db79fa99a9074ea6dc1cfb2974bf1fc7322f614e29093d496f8791b9b8f38fd"
},
"downloads": -1,
"filename": "django-queued-storage-fork-0.3.tar.gz",
"has_sig": false,
"md5_digest": "fe0a3d4bd4ad4b4cf4fa0ac6af8630d5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 37172,
"upload_time": "2011-09-12T11:41:01",
"url": "https://files.pythonhosted.org/packages/6d/c2/d8a5d35fa2a719c0e83144be7155ab5aa59fe501fc484b5eeca34060b72c/django-queued-storage-fork-0.3.tar.gz"
}
]
}