Transfer Uploaded Files to Dropbox
Project description
Transfer Uploaded Files to Dropbox
Quickstart
Install Django Dropbox Upload Handler:
pip install django-dropbox-upload-handler
Add it to your INSTALLED_APPS:
INSTALLED_APPS = (
...
'django_dropbox_upload_handler.apps.DjangoDropboxUploadHandlerConfig',
...
)
Add DropboxFileUploadHandler to the default Upload Handlers:
FILE_UPLOAD_HANDLERS = [
'django_dropbox_upload_handler.handler.DropboxFileUploadHandler'
]
To Enable DropboxFileUploadHandler within a single view:
forms.py
from django import forms
class UploadFileForm(forms.Form):
title = forms.CharField(max_length=50)
file = forms.FileField()
views.py
from django.http import HttpResponseRedirect
from django.shortcuts import render
from .forms import UploadFileForm
# Imaginary function to handle the uploaded file dropbox file.
from somewhere import handle_uploaded_file
def upload_file(request):
if request.method == 'POST':
self.request.upload_handlers.insert(0, DropboxFileUploadHandler(request))
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
handle_uploaded_file(request.FILES['file'])
return HttpResponseRedirect('/success/url/')
else:
form = UploadFileForm()
return render(request, 'upload.html', {'form': form})
Add Django Dropbox Upload Handler’s URL patterns:
from django_dropbox_upload_handler import urls as django_dropbox_upload_handler_urls
urlpatterns = [
...
url(r'^', include(django_dropbox_upload_handler_urls)),
...
]
Checking upload progress for API:
When submitting the file include the parameter progres_id in the URL. ex:
function getUUID() {
let uuid = ""
for (let i=0; i < 32; i++) {
uuid += Math.floor(Math.random() * 16).toString(16);
}
return uuid
}
function upload(file) {
let data = new FormData()
data.append('file', file)
fetch('/path/to/upload?progress_id=' + getUUID(), {
method: "post",
body: data
})
.then(response => {
//...
})
checkProgress(0, progressId, file.size)
}
function checkProgress(progressId, size) {
fetch('/upload_progress?progress_id=' = progiressId)
.then(response => {
if (r.status === 201)
return {done: 'true'}
return response.json()
})
.then(data => {
if (data.done) {
//..upload is completed
} else {
//.. still uploading - progress can be checked using:
progress = Math.round(parseInt(data.uploaded) / parseInt(data.length) * 100)
setTimeout(() => { checkProgress( progressId, size) }, 500)
}
})
}
Features
Transfers files uploaded through Django to Dropbox
Includes a upload_progress view for ajax calls
Running Tests
Does the code actually work?
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install tox (myenv) $ tox
Credits
Tools used in rendering this package:
History
0.1.0 (2017-09-03)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django-dropbox-upload-handler-0.1.1.tar.gz.
File metadata
- Download URL: django-dropbox-upload-handler-0.1.1.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36f3218c9337f77aab26651565e3864e38896a6bec501c94606903302bf591f6
|
|
| MD5 |
977e50764ca3277f47f33cbe918b3b5c
|
|
| BLAKE2b-256 |
0ea99238ad2709b69511f9cb459e0f95c48ff5a337de1cff1443aa1e5d68d878
|
File details
Details for the file django_dropbox_upload_handler-0.1.1-py2.py3-none-any.whl.
File metadata
- Download URL: django_dropbox_upload_handler-0.1.1-py2.py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52faf7b8b4c561eb898decb4468e1c41346d1a217b3d7439d95f25305569c42d
|
|
| MD5 |
745929a2fbe9c87efa7b13b77da964d4
|
|
| BLAKE2b-256 |
6357b1d5dfa367dcd1ff4b98e699e7804337023b3848dde0c1af29cb493f2416
|