I would like to add functionality to an existing .NET 6, WinForms app (currently migrating to .NET 8 if that is of any relevance), to periodically upload user usage metrics, in addition to providing capability for users to 'push' log files etc to a server where we can access them immediately, rather than users exporting logs and emailing them etc.
The files are typically small (10s of KB), and no more than a few hundred concurrent users. Users need to be able to upload, but not download, or see any data on the server.
The files themselves are plain text log files, which will then be downloaded and processed by various tools on-premises.
My current thinking is:
- SFTP to a SFTP server either hosted on-prem, or in cloud (AWS, etc) - this option I am far more familiar with, including hosting the FTP server on-prem.
- HTTP (S?) PUSH or PUT to a web server. This option I am far less familiar with, notably where/how to host the web server itself.
My concerns are traits such as ease of deployment, security and scalability for example.
With that in mind, which of the 2 technologies are best suited to this task - or rather, am I missing a technology from the list altogether that would be better suited to the job?