def take_backups_dropbox():
	did_not_upload, error_log = [], []
	try:
		from frappe.integrations.doctype.dropbox_backup.dropbox_backup import backup_to_dropbox
		did_not_upload, error_log = backup_to_dropbox()
		if did_not_upload: raise Exception

		send_email(True, "Dropbox")
	except Exception:
		file_and_error = [" - ".join(f) for f in zip(did_not_upload, error_log)]
		error_message = ("\n".join(file_and_error) + "\n" + frappe.get_traceback())
		frappe.errprint(error_message)
		send_email(False, "Dropbox", error_message)
Example #2
0
def take_backups_dropbox():
    did_not_upload, error_log = [], []
    try:
        from frappe.integrations.doctype.dropbox_backup.dropbox_backup import backup_to_dropbox
        did_not_upload, error_log = backup_to_dropbox()
        if did_not_upload: raise Exception

        send_email(True, "Dropbox")
    except Exception:
        file_and_error = [
            " - ".join(f) for f in zip(did_not_upload, error_log)
        ]
        error_message = ("\n".join(file_and_error) + "\n" +
                         frappe.get_traceback())
        frappe.errprint(error_message)
        send_email(False, "Dropbox", error_message)
Example #3
0
    sess = session.DropboxSession(frappe.conf.dropbox_access_key,
                                  frappe.conf.dropbox_secret_key, "app_folder")
    return sess


def upload_file_to_dropbox(filename, folder, dropbox_client):
    from dropbox import rest
    size = os.stat(filename).st_size

    with open(filename, 'r') as f:
        # if max packet size reached, use chunked uploader
        max_packet_size = 4194304

        if size > max_packet_size:
            uploader = dropbox_client.get_chunked_uploader(f, size)
            while uploader.offset < size:
                try:
                    uploader.upload_chunked()
                    uploader.finish(folder + "/" + os.path.basename(filename),
                                    overwrite=True)
                except rest.ErrorResponse:
                    pass
        else:
            dropbox_client.put_file(folder + "/" + os.path.basename(filename),
                                    f,
                                    overwrite=True)


if __name__ == "__main__":
    backup_to_dropbox()
	except:
		frappe.msgprint(_("Please install dropbox python module"), raise_exception=1)

	if not (frappe.conf.dropbox_access_key or frappe.conf.dropbox_secret_key):
		frappe.throw(_("Please set Dropbox access keys in your site config"))

	sess = session.DropboxSession(frappe.conf.dropbox_access_key, frappe.conf.dropbox_secret_key, "app_folder")
	return sess

def upload_file_to_dropbox(filename, folder, dropbox_client):
	from dropbox import rest
	size = os.stat(filename).st_size

	with open(filename, 'r') as f:
		# if max packet size reached, use chunked uploader
		max_packet_size = 4194304

		if size > max_packet_size:
			uploader = dropbox_client.get_chunked_uploader(f, size)
			while uploader.offset < size:
				try:
					uploader.upload_chunked()
					uploader.finish(folder + "/" + os.path.basename(filename), overwrite=True)
				except rest.ErrorResponse:
					pass
		else:
			dropbox_client.put_file(folder + "/" + os.path.basename(filename), f, overwrite=True)

if __name__=="__main__":
	backup_to_dropbox()