{ "info": { "author": "Jeremy Gonzalez", "author_email": "jeremy@jeremyg.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "=============================\nDjango Dropbox Upload Handler\n=============================\n\n.. image:: https://badge.fury.io/py/django-dropbox-upload-handler.svg\n :target: https://badge.fury.io/py/django-dropbox-upload-handler\n\n.. image:: https://travis-ci.org/jagonalez/django-dropbox-upload-handler.svg?branch=master\n :target: https://travis-ci.org/jagonalez/django-dropbox-upload-handler\n\n.. image:: https://codecov.io/gh/jagonalez/django-dropbox-upload-handler/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/jagonalez/django-dropbox-upload-handler\n\nTransfer Uploaded Files to Dropbox\n\nQuickstart\n----------\n\nInstall Django Dropbox Upload Handler::\n\n pip install django-dropbox-upload-handler\n\nAdd it to your `INSTALLED_APPS`:\n\n.. code-block:: python\n\n INSTALLED_APPS = (\n ...\n 'django_dropbox_upload_handler.apps.DjangoDropboxUploadHandlerConfig',\n ...\n )\n\nAdd DropboxFileUploadHandler to the default Upload Handlers:\n\n.. code-block:: python\n\n FILE_UPLOAD_HANDLERS = [\n 'django_dropbox_upload_handler.handler.DropboxFileUploadHandler'\n ]\n\nTo Enable DropboxFileUploadHandler within a single view:\n\nforms.py\n\n.. code-block:: python\n\n from django import forms\n\n class UploadFileForm(forms.Form):\n title = forms.CharField(max_length=50)\n file = forms.FileField()\n\n\nviews.py\n\n.. code-block:: python\n\n from django.http import HttpResponseRedirect\n from django.shortcuts import render\n from .forms import UploadFileForm\n\n # Imaginary function to handle the uploaded file dropbox file.\n from somewhere import handle_uploaded_file\n\n def upload_file(request):\n if request.method == 'POST':\n self.request.upload_handlers.insert(0, DropboxFileUploadHandler(request))\n form = UploadFileForm(request.POST, request.FILES)\n if form.is_valid():\n handle_uploaded_file(request.FILES['file'])\n return HttpResponseRedirect('/success/url/')\n else:\n form = UploadFileForm()\n return render(request, 'upload.html', {'form': form})\n\n\nAdd Django Dropbox Upload Handler's URL patterns:\n\n.. code-block:: python\n\n from django_dropbox_upload_handler import urls as django_dropbox_upload_handler_urls\n\n\n urlpatterns = [\n ...\n url(r'^', include(django_dropbox_upload_handler_urls)),\n ...\n ]\n\nChecking upload progress for API:\n\nWhen submitting the file include the parameter progres_id in the URL. ex:\n\n.. code-block:: javascript\n\n function getUUID() {\n let uuid = \"\"\n for (let i=0; i < 32; i++) {\n uuid += Math.floor(Math.random() * 16).toString(16);\n }\n return uuid\n }\n\n function upload(file) {\n let data = new FormData()\n data.append('file', file)\n fetch('/path/to/upload?progress_id=' + getUUID(), {\n method: \"post\",\n body: data\n })\n .then(response => {\n //...\n })\n checkProgress(0, progressId, file.size)\n }\n\n function checkProgress(progressId, size) {\n fetch('/upload_progress?progress_id=' = progiressId)\n .then(response => {\n if (r.status === 201)\n return {done: 'true'}\n return response.json()\n })\n .then(data => {\n if (data.done) {\n //..upload is completed\n } else {\n //.. still uploading - progress can be checked using:\n progress = Math.round(parseInt(data.uploaded) / parseInt(data.length) * 100)\n setTimeout(() => { checkProgress( progressId, size) }, 500)\n }\n })\n }\n\nFeatures\n--------\n\n* Transfers files uploaded through Django to Dropbox\n* Includes a upload_progress view for ajax calls\n\nRunning Tests\n-------------\n\nDoes the code actually work?\n\n::\n\n source /bin/activate\n (myenv) $ pip install tox\n (myenv) $ tox\n\nCredits\n-------\n\nTools used in rendering this package:\n\n* Cookiecutter_\n* `cookiecutter-djangopackage`_\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage\n\n\n\n\nHistory\n-------\n\n0.1.0 (2017-09-03)\n++++++++++++++++++\n\n* First release on PyPI.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jagonalez/django-dropbox-upload-handler", "keywords": "django-dropbox-upload-handler", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-dropbox-upload-handler", "package_url": "https://pypi.org/project/django-dropbox-upload-handler/", "platform": "", "project_url": "https://pypi.org/project/django-dropbox-upload-handler/", "project_urls": { "Homepage": "https://github.com/jagonalez/django-dropbox-upload-handler" }, "release_url": "https://pypi.org/project/django-dropbox-upload-handler/0.1.1/", "requires_dist": null, "requires_python": "", "summary": "Transfer Uploaded Files to Dropbox", "version": "0.1.1" }, "last_serial": 3146199, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "745929a2fbe9c87efa7b13b77da964d4", "sha256": "52faf7b8b4c561eb898decb4468e1c41346d1a217b3d7439d95f25305569c42d" }, "downloads": -1, "filename": "django_dropbox_upload_handler-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "745929a2fbe9c87efa7b13b77da964d4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8236, "upload_time": "2017-09-03T21:53:57", "url": "https://files.pythonhosted.org/packages/63/57/b1d5dfa367dcd1ff4b98e699e7804337023b3848dde0c1af29cb493f2416/django_dropbox_upload_handler-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "977e50764ca3277f47f33cbe918b3b5c", "sha256": "36f3218c9337f77aab26651565e3864e38896a6bec501c94606903302bf591f6" }, "downloads": -1, "filename": "django-dropbox-upload-handler-0.1.1.tar.gz", "has_sig": false, "md5_digest": "977e50764ca3277f47f33cbe918b3b5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7712, "upload_time": "2017-09-03T21:53:54", "url": "https://files.pythonhosted.org/packages/0e/a9/9238ad2709b69511f9cb459e0f95c48ff5a337de1cff1443aa1e5d68d878/django-dropbox-upload-handler-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "745929a2fbe9c87efa7b13b77da964d4", "sha256": "52faf7b8b4c561eb898decb4468e1c41346d1a217b3d7439d95f25305569c42d" }, "downloads": -1, "filename": "django_dropbox_upload_handler-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "745929a2fbe9c87efa7b13b77da964d4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8236, "upload_time": "2017-09-03T21:53:57", "url": "https://files.pythonhosted.org/packages/63/57/b1d5dfa367dcd1ff4b98e699e7804337023b3848dde0c1af29cb493f2416/django_dropbox_upload_handler-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "977e50764ca3277f47f33cbe918b3b5c", "sha256": "36f3218c9337f77aab26651565e3864e38896a6bec501c94606903302bf591f6" }, "downloads": -1, "filename": "django-dropbox-upload-handler-0.1.1.tar.gz", "has_sig": false, "md5_digest": "977e50764ca3277f47f33cbe918b3b5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7712, "upload_time": "2017-09-03T21:53:54", "url": "https://files.pythonhosted.org/packages/0e/a9/9238ad2709b69511f9cb459e0f95c48ff5a337de1cff1443aa1e5d68d878/django-dropbox-upload-handler-0.1.1.tar.gz" } ] }