我的Windows客户端应用程序(用C#编写)适用于部署在* NIX服务器上的远程MySQL数据库。
我将添加在服务器上存储文件的功能。我从不喜欢在DB中存储文件,因此文件将存储在文件系统中。该应用程序需要从服务器上传,下载和删除文件。
我能想到的任何方法都需要在服务器上部署额外的服务。 到目前为止,我最喜欢的是SFTP *,但还有其他解决方案是IMO的劣势:
网络服务 - 有吗?没有在这方面做过任何研究。
FTP服务器 - 至少带来与协议本身相关的所有问题
WebDAV - 有趣的选择,考虑到Apache模块和.NET库
一些临时脚本(显然是最糟糕的解决方案)
*我打算使用SharpSSH库和公钥认证来访问服务器上的特殊帐户,该帐户仅限于SSH操作
编辑:纠正了一些术语混淆,多亏了@vartec
答案 0 :(得分:1)
SCP功能相当有限。 SFTP和FISH比普通的SCP给你更多。 (请注意,SFTP不应与FTPS)
混淆Example of SFTP C# implementation。
优于其他选项 - 无需在服务器端进行额外配置。
答案 1 :(得分:1)
我会在* NIX服务器端使用vsftpd:它很小且易于配置,而且我没有遇到任何问题,因为我最初在6个月前设置它所以它也是可靠的。我只是使用常规FTP,但如果您担心安全问题,可以使用vsftpd进行SSL。
在客户端,有free, open source, FTP Client Library for C# made by Dan at C-SharpCorner.com。它很有用,并且很容易扩展其功能以执行更多操作。例如,我添加了一个用于更改远程服务器上文件权限的函数。
答案 2 :(得分:0)
putty和winscp就是你所需要的。