I want to understand the basic things, how the file synchronization systems like Google Disk, Mega, Yandex Disk work.
I want to create -Server -Client

It is necessary, as in other systems, when changing, adding, deleting files and folders — merging data to the server and then to the clients.
While I can monitor the folder for changes, but according to which protocol is it better to send data and how to organize it all?

  • How many clients will the server have? Are they on the same network, or should the files be transmitted over the Internet? Are there any security requirements? - Tihon
  • @ "Ivan Tyshchenko" several clients (not 1). For myself, so there will be no large loads. Internet access. It is possible without encryption, that would not be complicated (although, if there are examples with encryption, it is also interesting to understand) - Rakzin Roman
  • one
    The file transfer protocol has always been FTP / FTPS / SFTP, as an option for HTTP / HTTPS. There are quite a few examples of working with them on the net. The server can be implemented in a mass of ways, even WCF can be used, the specifics are chosen on the basis of specific requirements and performance tests. The most difficult, in my opinion, is to notify customers about updates on the server, but this is also solved in different ways. What exactly is the problem then? There is no universal right decision for all occasions, so you should choose what and how. - rdorn
  • if you are too lazy to deal with standard protocols, it is possible to assemble everything on bare sockets, but this is a rather dreary task and you still end up with a self-made version of one of the standard protocols and at least the standard server, only with its own homemade cockroaches in the Nth number. Start with synchronization at the file system folder level, and then add a layer to work through the Internet. - rdorn
  • @rdorn here in the notifications there were just difficulties, but I implemented it on the webboxes and the server notifies that there is an update. In fact, as I understand it, I put the ftp server on the server and the clients download or download it. Clients follow this. And manage it say what to do - I will be through the web site (well, or just a socket). It turns out, something like this - Rakzin Roman

1 answer 1

The easiest way to implement something from the standard protocols, for example - HTTP, WebDAV, or FTP. Then these protocols came to be implemented once and only on the client, since for the server you will already have a huge amount of software.

  • The problem is that client X is behind Nat, and how does he know that client U has updated the data and now it’s already on the server? and so wanted .... ( - Rakzin Roman