GNU Affero General Public License v3.0

项目介绍

stewartmcgown/uds 是一个托管在 GitHub 上的开源项目,主要使用 Python 编写,采用 GNU Affero General Public License v3.0 许可证,目前获得 4.4k 个 Star、272 次 Fork。

仓库全名
stewartmcgown/uds
开源许可证
GNU Affero General Public License v3.0
Star 数
4.4k
Fork 数
272
未关闭 Issue
25

README 摘要

:milkyway: 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…

完整内容见 GitHub 原始 README 或本页 。

常见问题

uds 用什么语言开发?

主要使用 Python 编写,采用 GNU Affero General Public License v3.0 许可证,目前有 4.4k 个 Star。

uds 可以免费商用吗?

仓库标注的许可证为 GNU Affero General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 uds 的源码?

可以直接克隆仓库:git clone https://github.com/stewartmcgown/uds.git,默认分支为 master;安装与运行步骤见仓库 README。

uds 最近还在维护吗?

仓库最近一次更新为 2021年11月2日,当前有 25 个未关闭 Issue;Star 数为 4.4k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

📀 Unlimited Google Drive Storage by splitting binary files into base64

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
4994
价值分
2713
活跃状态
活跃

语言占比

Python

README

: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

  1. Clone the Repository and setup the requirements pip3 install -r requirements.txt
  2. Head to Google’s API page and enable the Drive API
  3. Download the configuration file as ‘client_secret.json’ to the UDS directory
  4. Run python3 uds.py or ./uds.py for 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.

评论

暂无评论