Giter Site home page Giter Site logo

cloud-python's Introduction

Cloud Services

I created the project as an assignment on the first semester of my second year at BIU as part of Computer Networks course. This project was coded using a single thread in Python on top of TCP protocol. The service supports both Linux and Windows.

  • Cloud files backup services usually offer customers the option to download client software to the computer which allows them to select a folder on the computer and synchronize it automatically with the server at any change and between different computers.
  • When the software is run and a folder is set up from the computer, the software uploads to the server all the files in the folder for backup and from now on the software monitors any change that takes place in the folder deeply. When such a change is detected, the software updates the server about the change so that the backup on the server will be updated accordingly.
  • The software also knows to receive updates about changes that have occurred on other users' computers. That is, if the user installed the software on another computer, he selected an empty folder on the additional computer - to which the software downloads all the contents of the folder from the server, and then, as before, the software monitors the folder for any changes and updates the server.
  • The client must keep the ID that the server gave him - and in any future contact he must identify himself with the help of the ID. The client then continues to monitor the folder and synchronize with the server. Any changes made to a folder on one computer will be synchronized with the server precisely and with the other computers of the same client.
  • The server knows how to handle several different clients - whether they belong to the same user (same ID) or different users (different ID's) and knows how to synchronize any change in folders.

Compiling and Running

You must have Python 3.10 or higher installed on your machine. Run the server.py file attached to utils.py by the following command in the terminal:

python3 servery.py 12345

The number 12345 is the port number the server is listening to. You can choose any number from 1 to 2^16^-1.

Now, run the client.py file attached to utils.py in the computer of the client by the following command in the terminal:

python3 client.py 1.2.3.4 12345 backup_folder 10

The parameters are the IP address and port number of the server, the name of the backup folder and how much seconds to wait between connect to the server.

You can also use IDE's like PyCharm of course!

cloud-python's People

Contributors

giligutfeld avatar osherelhadad avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.