/uds

Unlimited Drive Storage by splitting binary files into base64

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

🌌 UDS : Unlimited Drive Storage

Store files in Google Docs without counting against your quota.

Features

  • Upload files to Google Drive without using storage space
  • Download any stored files to your computer

Logic

  • Size of the encoded file is always larger than the original. Base64 encodes binary data to a ratio of about 4:3.
  • A single google doc can store about a million characters. This is around 710KB of base64 encoded data.
  • Some experiments with multithreading the uploads, but there was no significant performance increase.

Authentication

  1. Head to Google's API page and enable the Drive API
  2. Download the configuration file as 'client_secret.json' to the UDS directory
  3. run python uds.py for initial set up

Upload

> python uds.py push Ubuntu.Desktop.16.04.iso
Ubuntu.Desktop.16.04.iso will required 543 Docs to store.
Created parent folder with ID 1fc6JGpX6vUWiwflL1jBxM1YpuMHFAms8
Successfully Uploaded Ubuntu.Desktop.16.04.iso: [██████████████████████████████] 100%

List

> python uds.py list
Name                      Size   Encoded    ID
------------------------  -----  ---------  ---------------------------------
Ubuntu.Desktop.16.04.iso  810 MB  1.1 GB     1fc6JGpX6vUWiwflL1jBxM1YpuMHFAms8

Download

> python uds.py pull
Downloaded Ubuntu.Desktop.16.04.iso: [██████████████████████████████] 100%

Compatible with Python 3.