Skip to content

Dropbox Uploader is a BASH script which can be used to upload, download, list or delete files from Dropbox, an online file sharing, synchronization and backup service.

Notifications You must be signed in to change notification settings

timetravel0/Dropbox-Uploader

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 

Repository files navigation

Author: Andrea Fabrizi
Email:  andrea.fabrizi@gmail.com
Web:    http://www.andreafabrizi.it

Dropbox Uploader is a BASH script which can be used to upload, download, delete or list files from Dropbox, an online file sharing, synchronization and backup service. 

It's written in BASH scripting language and only needs cURL (CLI).

Why use this script?

Portable: It's written in BASH scripting language and only needs cURL (curl is a tool to transfer data from or to a server, available for all operating systems and installed by default in many linux distributions).
Secure:It's not required to provide your username/password to this script, because it uses the official Dropbox API for authentication process. 

USAGE:
======

Usage: ./dropbox_uploader.sh COMMAND [PARAMETERS]...

[%%]: Required param 
<%%>: Optional param

Commands:

 upload   [LOCAL_FILE]  <REMOTE_FILE> 
 - Upload local file to remote Dropbox folder
   If the file is bigger than 150Mb the file is uploaded using small chunks (default 50Mb); in this case,
   if VERBOSE is set to 1, a . (dot) is printed when every chunk is successfully uploaded. Instead, if an
   error occurs during the chunk uploading, an * (star) is printed and the upload is retried for a maximum
   of three times.
   Only if the file is smaller than 150Mb, the standard upload API is used, and if VERBOSE is set to 1 the 
   default curl progression bar is displayed during the upload process.

 download [REMOTE_FILE] <LOCAL_FILE>  
 - Download file from Dropbox to local folder

 delete   [REMOTE_FILE] 
 - Remove a remote file from Dropbox

 list     <REMOTE_DIRECTORY>
 - List contents of the remote Dropbox folder
 
 info          
 - Print some info about your Dropbox account

 unlink
 - Unlink this script from your Dropbox account

Examples:
    ./dropbox_uploader.sh upload /etc/passwd /myfiles/passwd.old
    ./dropbox_uploader.sh upload /etc/passwd
    ./dropbox_uploader.sh download /backup.zip
    ./dropbox_uploader.sh delete /backup.zip
    ./dropbox_uploader.sh upload "My File.txt" "My File 2.txt"   (File name with spaces...)


TESTED ENVIRONMENTS:
====================
GNU Linux
FreeBSD 8.3
MacOSX
Windows/Cygwin
Raspberry Pi

If you have successfully tested this script on others systems or platforms please let me know!


HOW TO USE A PROXY:
===================

To use a proxy server, simply set the "https_proxy" environment variable:

### Linux:

    export HTTP_PROXY_USER=XXXX
    export HTTP_PROXY_PASSWORD=YYYY
    export https_proxy=http://192.168.0.1:8080

### BSD: 

    setenv HTTP_PROXY_USER XXXX
    setenv HTTP_PROXY_PASSWORD YYYY
    setenv https_proxy http://192.168.0.1:8080

   
BASH AND CURL INSTALLATION:
===========================

### Debian & Ubuntu Linux: 
    
    sudo apt-get install bash (Probably bash is already installed on your system)
    sudo apt-get install curl

### BSD: 

    cd /usr/ports/shells/bash && make install clean
    cd /usr/ports/ftp/curl && make install clean

### Cygwin:

    You need to install these packages: 
    - curl
    - ca-certificates

### Build cURL from source: 

    Download the source tarball from http://curl.haxx.se/download.html
   

DROPBOX UPLOADER FIRST START:
=============================

 $chmod +x dropbox_uploader.sh
 $./dropbox_uploader.sh


CHANGELOG:
==========

Version 0.10
- Code clean
- Improved urlencode function (thanks to Stefan Trauth - www.stefantrauth.de)
- Added command remove as alias of delete
- Fix for Raspberry PI
- Now if an error occurs during a chunk uploading, the upload is retried for a maximum of three times
- Minor changes
- Tested on Cygwin and MaxOSX

Version 0.9.9 - 24 Oct 2012:
- Added the possibility to choose the access level (App folder o Full Dropbox) during the setup procedure
- Added a check for the BASH shell version
- Fixed problems in listing files/directories with special characters
- Added the option CURL_ACCEPT_CERTIFICATES (see the script source)
- Added back the standard upload function. Now only if the file is greater than 150Mb, the chunked_upload API will be used.
- Fixed compatibility with bsd sed. Tested on FreeBSD, but probably it works on others bsd versions and osx. Let me know!
- Minor changes

Version 0.9.8 - 03 Oct 2012:
- Implemented chunked upload. Now there is no limit to file size!

Version 0.9.7 - 14 Sep 2012:
- Fixed bug in listing empty directories

Version 0.9.6 - 12 Sep 2012:
- Implemented list command
- Minor changes

Version 0.9.5 - 18 Jul 2012:
- Added a check for the maximum file size allowed by the DropBox API
- Minor changes

Version 0.9.4 - 19 Mar 2012:
- Implemented delete command
- Minor changes

Version 0.9.3 - 01 Mar 2012:
- Implemented download command
- Improved info output
- Fixed utime function
- Added dependency check for basename
- The script always returns 1 when errors occurs
- Improved error handling
- Fixed problem with spaces in config file name
- Minor bug fixes

Version 0.9.2 - 28 Feb 2012:
- Increased security, now any user can create his own Dropbox App

Version 0.9.1 - 27 Feb 2012:
- Fixed problem with spaces in dst file name

Version 0.9 - 27 Feb 2012:
- Code rewritten from scratch (CLI changed)
- Improved security and stability using official dropbox API, no more username/password needed!

Version 0.8.2 - 07 Sep 2011:
- Removed INTERACTIVE_MODE variable (now the progress bar is shown in VERBOSE mode)
- Improved command line interface and error messages
- Minor bug fixes

Version 0.8.1 - 31 Aug 2011 (by Dawid Ferenczy - www.ferenczy.cz)
- added prompt for the Dropbox password from keyboard, if there is no password 
  hardcoded or given as script command line parameter (interactive mode)
- added INTERACTIVE_MODE variable - when set to 1 show CURL progress bar.
  Set to 1 automatically when there is no password hardcoded or given as
  parameter. Controls verbosity of CURL.

Version 0.7.1 - 10 Mar 2011:
- Minor bug fixes

Version 0.7 - 10 Mar 2011:
- New command line interface
- Code clean

Version 0.6 - 11 Gen 2011:
- Fixed issue with spaces in file/forder name

Version 0.5 - 04 Gen 2011:
- Recursive directory upload

Version 0.4 - 29 Dec 2010:
- Now works on BSD and MAC
- Interactive prompt for username and password
- Speeded up the uploading process
- Debug mode

Version 0.3 - 18 Nov 2010:
- Regex updated

Version 0.2 - 04 Sep 2010:
- Removed dependencies from tempfile
- Code clean

Version 0.1 - 23 Aug 2010:
- Initial release

About

Dropbox Uploader is a BASH script which can be used to upload, download, list or delete files from Dropbox, an online file sharing, synchronization and backup service.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%