Skip to content

Instantly share code, notes, and snippets.

@navigatingbots
Forked from Keshava11/SFileUploader.py
Last active July 6, 2020 17:36
Show Gist options
  • Save navigatingbots/ce3768d6f35f73ab688a3ac8bfa45d31 to your computer and use it in GitHub Desktop.
Save navigatingbots/ce3768d6f35f73ab688a3ac8bfa45d31 to your computer and use it in GitHub Desktop.
Simple python script to upload file to Dropbox.
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