Мое клиентское приложение для Windows (написанное на C#) работает с удаленной базой данных MySQL, развернутой на сервере *NIX.
Я собираюсь добавить возможность хранить файлы на сервере. Я никогда не любил хранить файлы в БД, поэтому файлы будут храниться в файловой системе. Приложению потребуется загружать, скачивать и удалять файлы с сервера.
Любой подход, который я могу придумать, требует развертывания дополнительных услуг на сервере. До сих пор моим любимым является SFTP *, но есть и другие решения, которые хуже IMO:
Веб-сервис — есть ли? не проводил исследований в этом направлении.
FTP-сервер - приносит как минимум все проблемы, связанные с самим протоколом
WebDAV - интересный вариант, учитывая наличие модуля Apache и .NET-библиотек
Какой-то специальный скрипт (явно худшее решение)
* Я намерен использовать библиотеку SharpSSH и аутентификацию с открытым ключом для доступа к специальной учетной записи на сервере, которая будет ограничена только операциями SSH.
Редактировать: исправлена путаница в некоторых терминах, спасибо @vartec.