I'm looking for help deciding the setup for server and client for our non-profit organization. There will be 1 server and multiple users using a C# application. Here are some insights and requirements:
- The server will act as cloud file storage and the users will be using a C# application (Windows 10+, WinUI 3) locally from different networks and computers.
- We have a staff member that updates these files and he needs to upload them to the cloud storage via a web browser.
- There needs to be versioning as the local files need to be ALWAYS on sync with the cloud. For instance if one file is different than the cloud setup (the c# client/application needs to check this), this file should be downloaded so that local file can be in sync with cloud version.
For cloud storage, we tried ownCloud and using WebDAV packages for the C# application. However there are several issues:
- the WebDAV packages do not have functionality to make a comparison between local and cloud and if it's changed, old or does not exist, download this file.
- ownCloud website mentions versioning for files however I was not able to find more about is and how to use it. Especially with a C# application.
I know there is ownCloud's own client application however we are using a C# application developed for our organization and this file checking/transfer/updating and sync process needs to be done by this app.
What are your suggestions for this kind of setup? Both for the server and application? The language of the application cannot be changed but for sure there is other protocols and packages that should help solve this issue. Cloud storage services should be a good example for this.
Thank you.