A github project UDS (Unlimited Drive Storage) was fired on telegram , which can realize the unlimited capacity of personal version of network disk.
How it works?
It converts the binary encoding of the file to base64 and store it in Google Docs, and then convert from base64 to the binary encoding of the file when downloading, thereby restoring the file.
Because Google ’s current policy is that Google Docs (Google Online Docs) is free and does not limit capacity, so this can be achieved. Of course, it is not ruled out that Google added restrictions or lifted the unlimited storage policy of Google Docs after discovering that it was being padded with wool. This is something to say.
Steps to install :-
Install python3 and pip
Linux: yum install python3 pip3 apt install python3 python3-pip
macOS: brew install python3, you need to install the homebrew package manager in advance
The above can also be directly compiled and installed
Windows: Google yourself
Regarding the missing dependencies, what is missing and what to install, for example:
If an Error ModuleNotFoundError: No module named ‘googleapiclient’ is reported , enterpip3 install --upgrade google-api-python-client
Step 2. Apply for Google API
After applying, download the
credentials.json file for backup.
Git clone and complete verification
The following steps are in the machine operation:
#Note that you must cd into the directory, otherwise you will get an error ‘Failed with: NoClientSecretError’ cd / path / to / uds #Move the downloaded api file to the ups folder and rename it to client_secret.json mv /path/to/credentials.json /path/to/uds/client_secret.json #initialization python3 uds.py
After completion, it will automatically jump to the browser and start the verification and login of the Google account. The URL of the jump site will also appear in the terminal:
After the deployment is complete, you can start using it. The git clone action can be done on the remote server, or directly on your own computer.
When deploying on the server , you need to manually copy the URL to the local browser to complete the verification, and a string of authentication codes will be given after the verification is completed. And use the
python3 uds.py --noauth_local_webserver initial initialization step.
python3 uds.py push Uploads a file from this computer [path_to_file] python3 uds.py bunch Uploads files from this computer [word_in_file] [path_to_file] python3 uds.py pull Downloads a UDS file [id] python3 uds.py batch Downloads UDS files [word_in_file] python3 uds.py grab Downloads a UDS file [name] python3 uds.py list Finds all UDS files [query] python3 uds.py update Update cached UDS data python3 uds.py delete Deletes a UDS file [id] python3 uds.py erase Deletes a UDS file [name] python3 uds.py wipe Deletes UDS files [word_in_file]
Analysis:- It can be seen that it took me 4 minutes to upload a video file with less than 50 megabytes using MBP, and 6 minutes to download the file. Aside from Internet speed, encoding and decoding also take a long time. Therefore, although this method can achieve unlimited capacity, but at the cost of transmission and download speed. Therefore, it is not recommended to upload large files.
The security is also very good, don’t
client_secret.json want to decode and download if others can’t get you .
As you can see in the last column, there is an extra
uds.pyfile after the list , which I tried to upload after the remote server was deployed. It also proves that as long as there is a
client_secret.json file in hand, it can also achieve cross-device upload and download, and the standard function of the network disk.
There are still deficiencies in uds core, which are specifically reflected in:
The pure command line needs to master the basics of Linux, but many people just want an unlimited Google disk
The program is
client_secret.json heavily dependent on files, so how to properly host is a problem
There are still many inconveniences in downloading and uploading files across devices (not in the case of your own computer), and cannot be solved with a one-click fool script
Without sharing function, you can’t transfer other people’s files
Internet is required, which means that domestic servers cannot be deployed directly.
There’s an web version too. Coming up… Next