stewartmcgown/uds has 4,373 GitHub stars and 275 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-07 15:58 UTC. Last push 2021-11-02.
๐ Unlimited Google Drive Storage by splitting binary files into base64
What you can do
- Upload files to Google Drive without using storage space
- Download any stored files to your computer
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original:milky_way: UDS : Unlimited Drive Storage
Store files in Google Docs without counting against your quota.
sorry @ the guys from google internal forums who are looking at this
Development on a web-based JS version has started here.
Note: After June 1st 2021, starting June 1, 2021, Google will count Docs, Sheets, Slides, Drawings, Forms and Jamboard files against the user's storage quota.
Features
- Upload files to Google Drive without using storage space
- Download any stored files to your computer
Logic
- Google Docs take up 0 bytes of quota in your Google Drive
- Split up binary files into Google Docs, with base64 encoded text
- 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 multi-threading the uploads, but there was no significant performance increase.
Setup & Authentication
- Clone the Repository and setup the requirements
pip3 install -r requirements.txt - Head to Google's API page and enable the Drive API
- Download the configuration file as 'client_secret.json' to the UDS directory
- Run
python3 uds.pyor./uds.pyfor initial set up
UDS Core
Upload
> ./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%
[Layout]
./uds.py --push argument
argument: Path_to_file+file_name
List
> ./uds.py --list
Name Size Encoded ID
------------------------ ----- --------- ---------------------------------
Ubuntu.Desktop.16.04.iso 810 MB 1.1 GB 1fc6JGpX6vUWiwflL1jBxM1YpuMHFAms8
Ubuntu.Desktop.18.10.iso 1.1 GB 1.3 GB 1RzzVfN9goHMTkM1Hf1FUWUVS_2R3GK7D
Also supports searching with a query!
> ./uds.py --list "18"
Name Size Encoded ID
------------------------ ----- --------- ---------------------------------
Ubuntu.Desktop.18.10.iso 1.1 GB 1.3 GB 1RzzVfN9goHMTkM1Hf1FUWUVS_2R3GK7D
[Layout]
./uds.py --list
arguments: query
Download
> ./uds.py --pull 1fc6JGpX6vUWiwflL1jBxM1YpuMHFAms8
Downloaded Ubuntu.Desktop.16.04.iso: [โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ] 100%
[Layout]
./uds.py --pull argument
argument: id_of_file
Delete
> ./uds.py --delete 1fc6JGpX6vUWiwflL1jBxM1YpuMHFAms8
Deleted 1fc6JGpX6vUWiwflL1jBxM1YpuMHFAms8
[Layout]
./uds.py --delete argument
argument: id_of_file
Alpha Extensions
Grab
> ./uds.py --grab test.7z
Update Successful!
Downloaded test.7z: [โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ] 100%
[Layout]
./uds.py --grab argument
argument: name_of_file
Erase
>./uds.py --erase test2.7z
Update Successful!
Deleted test2.7z
[Layout]
./uds.py --erase argument
argument: name_of_file
Update
> ./uds.py --update
Name Encoded Size
--------- -------- -----
file_name 1.1 GB 810 MB
"User.txt"
Name Encoded Size
--------- -------- -----
file_name 1.1 GB 810 MB
"data.txt"
{
"file0": "1fc6JGpX6vUWiwflL1jBxM1YpuMHFAms8"
"file2": "1fc6JGpX6vUWiwflL1jBxM1YpuMHFAms9"
}
[Layout]
./uds.py --update
arguments: None
Bulk Extensions
Bunch
> ./uds.py --bunch test
test.7z.1 will require 1337 Docs to store.
Created parent folder with ID 1fc6JGpX6vUWiwflL1jBxM1YpuMHFAm12
Successfully Uploaded test.7z.1: [โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ] 100%
test.7z.2 will require 1337 Docs to store.
Created parent folder with ID 1fc6JGpX6vUWiwflL1jBxM1YpuQQFAm12
Successfully Uploaded test.7z.2: [โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ] 100%
test.7z.3 will require 600 Docs to store.
Created parent folder with ID 1fc6JGpX6vTOiwflL1jBxM1YpuQQFAm12
Successfully Uploaded test.7z.3: [โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ] 100%
[Layout]
./uds.py --bunch argument[1] argument[2]
argument[1]: name_in_files, or wildcard "?" without quotes
argument[2]: directory, default is current directory of UDS
Batch
> ./uds.py --batch file_name
Update Successful!
Downloaded file_name.7z.1: [โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ] 100%
Downloaded file_name.7z.2: [โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ] 100%
Downloaded file_name.7z.3: [โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ] 100%
[Layout]
./uds.py --batch argument
arguments: name_in_files, or wildcard "?" without quotes
Wipe
> ./uds.py --wipe file
Update Successful!
Deleted file.7z.1
Deleted file.7z.2
Deleted file.7z.3
[Layout]
./uds.py --wipe argument
arguments: name_in_files, or wildcard "?" without quotes
Only Compatible with Python 3.
Explore related projects
affaan-m/ECC
The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
299,377 starsNousResearch/hermes-agent
The agent that grows with you
261,596 starsmultica-ai/andrej-karpathy-skills
A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
230,744 starsfirecrawl/firecrawl
Supercharge your AI agents with data from the web and beyond. Building the library for superintelligence. ๐ฅ
199,551 stars