BeeDrive: Open Source Privacy File Transfering System for Teams and Individual Developers

Overview

BeeDrive

For privacy and convenience purposes, more and more people try to keep data on their own hardwires instead of third-party cloud services such as Google Drive, OneDrive, and Baidu Drive. While large companies have enough resources to develop their cloud storage services, individual developers and startups are not capable of building a new cloud storage system.

BeeDrive is an open-source file storage and transfer system that you can quickly deploy on your computing station, online cloud servers, and laptops. We provide a new TCP-based protocol to make sure your data safety. The significance between BeeDrive with other TCP-based protocols (e.g., HTTP and FTP) is encrypting data with users' passwords. Moreover, BeeDrive has a built-in NAT service so that you can access your workstation without a stable IP using your laptop.

Features

  • Security &Privacy

    In contrast with protocols like HTTP and FTP, BeeDrive keeps your data safe during each time of data transfer based on your password. It means that even if attackers obtain open-source BeeDrive code like you, they can't crack your encrypted data. Specifically, before transferring each piece of your data, BeeDrive first signs your data and password with the MD5 algorithm then applies the AES algorithm to encrypt it with your password as a private key.

  • Efficiency & Scalable

    We didn't sacrifice performance for safety. BeeDrive can transfer individual files at a rate of 50MB/s with encryption, while it can even reach over 100MB/s without encryption. This performance is sufficient for typical file transfer scenarios, such as file exchange within the same data center (w/o encryption) and unsafety World Wide Web transfers (w/ encryption).

    BeeDrive cloud drive service relies on a multi-processing and multi-threading architecture to support concurrency scenarios. It will automatically launch and destroy new managers (Process-based) and workers (Thread-based) regarding the number of queries. Single Intel i7 CPU (workstation-version) can support ~100 downloading/uploading tasks simultaneously!

  • Free Network Address Translation (NAT)

    Most individual developers and startups need to access their personal computers via their laptops. Although LAN Port Forwarding is a common choice, users take risks to be attacked. BeeDrive provides several public forwarding proxies world wild to help you access your data far away from your home. Once you have your cloud service, you can even deploy your own NAT service!

  • User Friendly API Designs

    We keep BeeDrive as simple as we can. Firstly, you can obtain BeeDrive in flexible ways, such as PyPi, Source Code, and Executable Files (.exe). More than that, we have automatic strategies to help you manage configurations. To help you follow task progresses, we have rich information on console, and a simplify GUI window! No matter you are an expert or a freshman, you can always find a way that suits your style.

Installation

The easiest way to get BeeDrive is using PyPi!

> pip install BeeDrive

You can launch BeeDrive in CMD with BeeDrive and a GUI interface with BeeDrive-gui.

> BeeDrive -h
BeeDrive Command Line Launcher!

positional arguments:
  {cloud,upload,download,proxy}
                        whice service you need?
  arg1                  the first additional argument (optional)
  arg2                  the second additional argument (optional)

optional arguments:
  -h, --help            show this help message and exit
  -mode {app,cmd}       work on Command Line or Window Application?
  -reset_config {y,n}   reset default configure file [y|n]
  -custom_config CUSTOM_CONFIG
                        launch service with your custom configure file

The GUI interface will show if you are on a Mac/Windows platform.

> BeeDrive-gui

Welcom BeeDrive in GUI

If you can't run above codes, try the followings instead.

> python -m BeeDrive -h
> python -m BeeDrive-gui

BeeDrive relies on two optional dependencies. PySimpleGUI is used to support GUI interface. pycryptodome is used for encrypting. They are not necessary if you don't need on these two purposes.

Examples

  • Personal Drive Service

    You ONLY need to setup at the first time running BeeDrive cloud, it will remember your setting in the future.

    In this case, we not only launch a local personal drive, but also regist it on our public forwarding servers. 34.94.43.17:8889 is running at US, while 8.130.53.35:8889 is working in China. After we have a name on proxies, our drive can be accessed with this nick name instead of IP address.

> BeeDrive cloud 
Setting configurations

[1] Default Cloud Service
1. Authorized users and passwords [user:passwd;user:passwd;...]:BeeDrive:1234;anonymous:0
2. One port to launch the Server [1-65555]:8888
3. A path to save file on your computer: c:\\
4. How many minutes your want to keep the cloud alive? [1-30000]: 30000
5. Sign your data during transfering (maybe slow down transfering)? [y|n] y
6. Encrypto your data during transfering (maybe slow down transfering)? [y|n] y
7. How many CPUs the service can use at most? 8
8. How many tasks can each CPU accept at most? 8

[2] Free NAT Service [y|n]: y
9. Accessible Forwarding servers [ip:port;ip;port;...]: 34.94.43.17:8889;8.130.53.35:8889
10. A public name on the Forwarding server [anything]: wxsPC
11. One port to launch the local Proxy server [1-65555]: 8890
[Sun Jan 23 05:26:25 2022] INFO: Update BeeDrive-cloud default config at c:\.ProgramData\BeeDrive\cloud.bee
[Sun Jan 23 05:26:25 2022] INFO: Server has been launched at ('0.0.0.0', 8888)
[Sun Jan 23 05:26:25 2022] INFO: Registed at Proxy 34.94.43.17:8889 with nickname wxsPC:8888
[Sun Jan 23 05:26:26 2022] INFO: Registed at Proxy 8.130.53.35:8889 with nickname wxsPC:8888

Maybe you are more interested in running with a Window.

> BeeDrive cloud -mode app

Cloud APP

  • Upload File/Folder

    Here is the example to help you upload myfile.txt to the cloud drive we just setup. Again, you will have to fill out these settings at the first time ONLY.

> BeeDrive upload myfile.txt
Setup default config
1. Username to login the Cloud: BeeDrive
2. Password to login the Cloud:
3. Cloud service address [ip:port]: wxsPC:8888
4. Forwarding Proxy service addresses [ip:port;ip;port;...]: 34.94.43.17:8889
5. Maximum numer of concurrently transferring files: 4
6. Sign transfering data (may slow down speed) [y|n]:y
7. Encrypto transfering data (may slow down speed) [y|n]:y
[Sun Jan 23 05:36:08 2022] INFO: Update BeeDrive-upload default config at c:\.ProgramData\BeeDrive\upload.bee
[Sun Jan 23 05:36:11 2022] INFO: - using proxy 34.94.43.17:8889 to connect target wxsPC:8888
Upload:myfile.txt: ================================================== 100.0% | 0.00KB/s |  0

Of course, we have GUI for this service again.

> BeeDrive upload -mode app

Upload APP

  • Download File

    Downloading is similar to uploading. The only different is we need to assign an address to save file.

> mkdir temp_download 
> BeeDrive download myfile.txt temp_download
Setup default config
1. Username to login the Cloud: BeeDrive
2. Password to login the Cloud:
3. Cloud service address [ip:port]: wxsPC:8888
4. Forwarding Proxy service addresses [ip:port;ip;port;...]: 34.94.43.17:8889
5. Maximum numer of concurrently transferring files: 4
6. Sign transfering data (may slow down speed) [y|n]:y
7. Encrypto transfering data (may slow down speed) [y|n]:y
[Sun Jan 23 05:53:28 2022] INFO: Update BeeDrive-download default config at c:\.ProgramData\BeeDrive\download.bee
[Sun Jan 23 05:53:31 2022] INFO: - using proxy 34.94.43.17:8889 to connect target wxsPC:8888
Download:myfile.txt: ================================================== 100.0% | 0.06KB/s |  0

Here is the code to help you run this service with a GUI.

> BeeDrive download -mode app
  • Forwarding Proxy (Free NAT)

    Forwarding proxy doesn't support GUI because we think it should work on servers only. This service only relies on one single argument! That is the port you need.

> BeeDrive proxy 8889
[Sun Jan 23 03:49:58 2022] INFO: Public Host Proxy is launched at port 8889
[Sun Jan 23 03:50:03 2022] INFO: Registration 198.137.18.12:8888 with Nickname=BeeDrive
[Sun Jan 23 03:50:32 2022] INFO: Forwarding 198.137.18.12:1557 to BeeDrive:8888
[Sun Jan 23 03:53:01 2022] INFO: Forwarding 64.136.145.66:2961 to BeeDrive:8888
[Sun Jan 23 03:53:54 2022] INFO: Forwarding 198.137.18.12:45652 to BeeDrive:8888
Owner
Xuansheng Wu
Research Interest includes: Natural Language Processing, Multi-Modal, and Knowledge Graph
Xuansheng Wu
Twitter bot to know the number of dislikes of a YouTube video

YT_dislikes is a twitter bot that allows you to know the number of dislikes (and likes) of a YouTube video. Now it is not possible to see the number o

1 Jan 08, 2022
Provide fine-grained push access to GitHub from a JupyterHub

github-app-user-auth Provide fine-grained push access to GitHub from a JupyterHub. Goals Allow users on a JupyterHub to grant push access to only spec

Yuvi Panda 20 Sep 13, 2022
An interactive and multi-function Telegram bot, made especially for Telegram groups.

PyKorone An interaction and fun bot for Telegram groups, having some useful and other useless commands. Created as an experiment and learning bot but

Amano Team 17 Nov 12, 2022
This bot can mention members upto 10,000 in groups and can mention members upto 200 in channels !

Mention All Bot This bot can mention members upto 10,000 in groups and can mention members upto 200 in channels ! 🏷 Infomation Language: Python. Tele

Anjana Madu 52 Dec 29, 2022
Python Wrapper for aztro - The Astrology API | Get Daily Horoscope 💫

PyAztro PyAztro is a client library for aztro written in Python. aztro provides horoscope info for sun signs such as Lucky Number, Lucky Color, Mood,

Sameer Kumar 30 Jan 08, 2023
SickNerd aims to slowly enumerate Google Dorks via the googlesearch API then requests found pages for metadata

CLI tool for making Google Dorking a passive recon experience. With the ability to fetch and filter dorks from GHDB.

Jake Wnuk 21 Jan 02, 2023
HASOKI DDOS TOOL- powerful DDoS toolkit for penetration tests

DDoS Attack Panel includes CloudFlare Bypass (UAM, CAPTCHA, GS ,VS ,BFM, etc..) This is open source code. I am not responsible if you use it for malic

Rebyc 1 Dec 02, 2022
The worst but simplest webhook bot for GitHub and Matrix.

gh-bot gh-bot is maybe the worst (but simplest) Matrix webhook bot for Github. Example of commits: Example of workflow finished: Setting up Server You

Jae Lo Presti 4 Aug 18, 2022
A simple library for interacting with Amazon SQS.

qoo is a very simple Amazon SQS client, written in Python. It aims to be much more straight-forward to use than boto3, and specializes only in Amazon

Jacobi Petrucciani 2 Oct 30, 2020
An unofficial python wrapper for the comdirect API for private consumers.

An unofficial python wrapper for the comdirect API for private consumers.

Alexander Knittel 18 Nov 30, 2022
Twitch Linux Typer

Twitch Linux Typer The most cursed Twitch chat bot Listens to twitch chat, and then types it handles hotkeys and button presses via the ^ char, eg ctr

Robin Universe 4 Jun 27, 2022
Amanda-A next gen powerful telegram group manager bot for manage your groups and have fun with other cool modules.

Amanda-A next gen powerful telegram group manager bot for manage your groups and have fun with other cool modules.

Team Amanda 4 Oct 21, 2022
A script to automate the process of downloading Markdown and CSV backups of Notion

Automatic-Notion-Backup A script to automate the process of downloading Markdown and CSV backups of Notion. In addition, the data is processed to remo

Jorge Manuel Lozano Gómez 2 Nov 02, 2022
A lightweight, dependency-free Python library (and command-line utility) for downloading YouTube Videos.

24 July 2020 Actively soliciting contributers! Ping @ronncc if you would like to help out! pytube pytube is a very serious, lightweight, dependency-fr

pytube 7.9k Jan 02, 2023
discord token grabber using python

Discord Token Grabber A Discord token grabber written in Python 3. This version of the grabber only supports Windows. Features No local caching Transf

1 Oct 28, 2021
Bot to notify when vaccine appointments are available

Vaccine Watch Bot to notify when vaccine appointments are available. Supports checking Hy-Vee, Walgreens, CVS, Walmart, Cosentino's stores (KC), and B

Peter Carnesciali 37 Aug 13, 2022
Automated JSON API based communication with Fronius Symo

PyFronius - a very basic Fronius python bridge A package that connects to a Fronius device in the local network and provides data that is provided via

Niels Mündler 10 Dec 30, 2022
This Telegram bot is created to help monitor individual mood. Lean and mean

Mood bot This bot is created to help monitor your mood. Lean and mean. Deployment Install Docker and Docker Compose Populate .env file cp .env.dist .e

Piotr Markielau 1 Dec 05, 2021
An advanced telegram country information finder bot.

Country-Info-Bot-V2 An advanced telegram country information finder bot Made with Python3 (C) @FayasNoushad Copyright permission under MIT License Lic

Fayas Noushad 16 Nov 12, 2022
A python package for fetching informations from GitHub API

Py-GitHub A python package for fetching informations from GitHub API Made with Python3 (C) @FayasNoushad Copyright permission under MIT License Licens

Fayas Noushad 6 Nov 28, 2021