-
-
Save navigatingbots/ce3768d6f35f73ab688a3ac8bfa45d31 to your computer and use it in GitHub Desktop.
Simple python script to upload file to Dropbox.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import sys | |
| import dropbox | |
| from dropbox.files import WriteMode | |
| from dropbox.exceptions import ApiError, AuthError | |
| def uploadtodropbox(filetoupload='max2.jpg'): | |
| '''https://gist.github.com/Keshava11/d14db1e22765e8de2670b8976f3c7efb''' | |
| TOKEN = 'ENTER YOUR TOKEN HERE' | |
| #LOCALFILE = '/home/xroom/Pictures/max2.jpg' | |
| LOCALFILE = '/home/xroom/Pictures/' + filetoupload | |
| BACKUPPATH = '/' + filetoupload # Keep the forward slash before destination filename | |
| # Check for an access token | |
| if (len(TOKEN) == 0): | |
| print("ERROR: Looks like you didn't add your access token.") | |
| print("Open up backup-and-restore-example.py in a text editor and paste in your token in line 14.") | |
| sys.exit() | |
| # Create an instance of a Dropbox class, which can make requests to the API. | |
| print("Creating a Dropbox object...") | |
| dbx = dropbox.Dropbox(TOKEN) | |
| # Check that the access token is valid | |
| try: | |
| dbx.users_get_current_account() | |
| except AuthError as err: | |
| sys.exit( | |
| "ERROR: Invalid access token; try re-generating an access token from the app console on the web.") | |
| try: | |
| ########## checkFileDetails()############## | |
| print("Checking file details") | |
| for entry in dbx.files_list_folder('').entries: | |
| print("File list is : ") | |
| print(entry.name) | |
| except Error as err: | |
| sys.exit("Error while checking file details") | |
| print("Creating backup...") | |
| ########################################################################### | |
| ################# Create a backup of the current settings file ########### | |
| ########################################################################### | |
| # backup() | |
| ##################### | |
| with open(LOCALFILE, 'rb') as f: | |
| # We use WriteMode=overwrite to make sure that the settings in the file | |
| # are changed on upload | |
| print("Uploading " + LOCALFILE + " to Dropbox as " + BACKUPPATH + "...") | |
| try: | |
| dbx.files_upload(f.read(), BACKUPPATH, mode=WriteMode('overwrite')) | |
| except ApiError as err: | |
| # This checks for the specific error where a user doesn't have enough Dropbox space quota to upload this file | |
| if (err.error.is_path() and err.error.get_path().error.is_insufficient_space()): | |
| sys.exit("ERROR: Cannot back up; insufficient space.") | |
| elif err.user_message_text: | |
| print(err.user_message_text) | |
| sys.exit() | |
| else: | |
| print(err) | |
| sys.exit() | |
| ###################### backup() end ####################################### | |
| print("Done!") | |
| # Run this script independently | |
| if __name__ == '__main__': | |
| uploadtodropbox() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment