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
Using DST's API with Python

A short guide on how to access Denmark's Statistics API with python, together with a helper class that facilitates the collection of data and metadata from any DST's table

Alessandro Martinello 16 Dec 02, 2022
The Python SDK for the BattleshAPI game

BattleshAPy The Python SDK for the BattleshAPI game Installation This library will be eventually going on PyPI, but until then, simply clone or downlo

Christopher 0 Apr 18, 2022
Telegram bot to extract text from image

OCR Bot @Image_To_Text_OCR_Bot A star ⭐ from you means a lot to us! Telegram bot to extract text from image Usage Deploy to Heroku Tap on above button

Stark Bots 25 Nov 24, 2022
A discord token nuker With loads of options that will screw an account up real bad, also has inbuilt massreport, GroupChat Spammer and Token/Password/Creditcard grabber and so much more!

Installation | Important | Changelogs | Discord NOTE: Hazard is not finished! You can expect bugs, crashes, and non-working functions. Please make an

Rdimo 470 Aug 09, 2022
Keypirinha plugin to install packages via Chocolatey

Keypiriniha Chocolatey This is a package for the fast keystroke launcher keypirinha (http://keypirinha.com/) It allows you to search & install package

Shadab Zafar 4 Nov 26, 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
It's My Bot, For my group in telegram :)

Get Start USage This robot is written in Python language for devdood Group in Telegram ... You can easily edit and use this source Edit and Run You ne

Mohsen farzadmanesh 7 Sep 24, 2022
A quick and dirty script to scan the network, find default credentials on services and post a message to a Slack channel with the results.

A quick and dirty script to scan the network, find default credentials on services and post a message to a Slack channel with the results.

Security Weekly 11 Jun 03, 2022
Mixcloud API wrapper for Python and Async IO

aiomixcloud Mixcloud API wrapper for Python and Async IO aiomixcloud is a wrapper library for the HTTP API of Mixcloud. It supports asynchronous opera

Aristotelis Mikropoulos 26 Dec 31, 2022
Configure your linux server and check for vulnerabilities with serverlla

serverlla Configure your linux server and check for vulnerabilities with serverlla. Serverlla has a menu with options and allows you to configure your

Dylan Meca 10 Feb 01, 2022
Collection of script to manage WLED devices

Collection of script to manage WLED devices

Daniel Poelzleithner 4 Sep 26, 2022
This Telegram bot allows you to create direct links with pre-filled text to WhatsApp Chats

WhatsApp API Bot Telegram bot to create direct links with pre-filled text for WhatsApp Chats You can check our bot here. The bot is based on the API p

RobotTrick • רובוטריק 17 Aug 20, 2022
An script where it logs in your instagram account and follows people and likes their posts

InstaFollower An script where it logs in your instagram account and follows people and likes their posts (uses the tags to fetch people) Requirements:

Bless 3 Nov 29, 2022
Plugin for Sentry which allows sending notification via Telegram messenger.

Sentry Telegram Plugin for Sentry which allows sending notification via Telegram messenger. Presented plugin tested with Sentry from 8.9 to 9.1.1. DIS

Shmele 208 Dec 30, 2022
A Twitter bot written in Python using Tweepy and hosted on a server.

A Twitter bot written in Python using Tweepy. It can like and/or retweet tweets that contain single or multiple keywords and hashtags.

anniedotexe 11 Dec 15, 2022
Python interface to the World Bank Indicators and Climate APIs

wbpy A Python interface to the World Bank Indicators and Climate APIs. Readthedocs Github source World Bank API docs The Indicators API lets you acces

Matt Duck 47 Oct 31, 2022
HTTP API for TON (The Open Network)

HTTP API for The Open Network Since TON nodes uses its own ADNL binary transport protocol, a intermediate service is needed for an HTTP connection. TO

66 Dec 28, 2022
Stock trading bot made using the Robinhood API / Python library...

High-Low Stock trading bot made using the Robinhood API / Python library... Index Installation Use Development Notes Installation To Install and run t

Reed Graff 1 Jan 07, 2022
This package accesses nitrotype's official api along with its unofficial user api

NitrotypePy This package accesses nitrotype's official api along with its unofficial user api. Currently still in development. Install To install, run

The Moon That Rises 2 Sep 04, 2022
A modular bot running on python3 with anime theme and have a lot features

STINKY ROBOT Emiko Robot is a modular bot running on python3 with anime theme and have a lot features. Easiest Way To Deploy On Heroku This Bot is Cre

Riyan.rz 3 Jan 21, 2022