Cloudroid – Cloud storage on a network of Odroid devices.

About

This project is about developing basic cloud storage and file sharing mechanisms based on the FTP protocol.

Goals

  • Allow a single user to operate on files on a remote network simultaneously: upload, download, list, delete, etc.
  • Let multiple users share files via a shared folder.
  • Every peer in the network should remain consistent, and have it’s own copy of the shared directory.
  • It should run on any machine with Linux and Python3. (The use of Odroid devices is just an example)
  • Keep it as simple as possible.

Protocol overview

In this project we have developed and implemented a protocol that achieves the listed goals above.
This protocol is heavily based upon the already existing FTP protocol, so knowledge of the former is essential.
Information about the Cloudroid protocol can be found here:

https://github.com/nathanwallh/Cloudroid/blob/master/info/Overview.md

Information about the basic FTP protocol can be found here:

https://en.wikipedia.org/wiki/File_Transfer_Protocol

Code

The full code is in the project’s github:

https://github.com/nathanwallh/Cloudroid

How-to

To set up a network of multiple peers, one must have multiple machines running the server program, and a list of their addresses.
We have created a full guide for setting up servers:

https://github.com/nathanwallh/Cloudroid/blob/master/info/How-to.md

Video example

The following video example shows:

  • Running a server that has 2 other peers(they are written in its peers list).
  • Connecting to the network as a client, via telnet.
  • Listing all files in the shared directory.
  • Creating and storing a file named helloRBDLAB.txt in the network.
  • Retrieving a file named helloRBDLAB.txt from the network.

Note that the action of storing a file in the network, creates copies of it in every other peer machine as well.


Issues + Future development

The Cloudroid protocol was developed from scratch, and it has some issues that need to be taken care of.
We have listed the biggest issues that concerned us, and optional solutions for them:

https://github.com/nathanwallh/Cloudroid/blob/master/info/Issues.md

Developers

  • Oren Efraimov – orenef11@gmail.com
  • Nathan Wallheimer – nathanwallh@gmail.com
Accessibility
Close Close