我读了这篇文章:
这两者彼此非常不同,尽管它们都旨在服务于同一目的.SFTP使用单个通道发送和接收所有相关数据,而FTPS使用另一个动态决定数据的通道.FTPS在通过防火墙时经常遇到问题,因为它不知道数据正在使用的端口,并且无法允许通过端口的流量.FTPS以文本格式发送消息,允许人们读取日志并确定会话期间发生的事情.SFTP无法做到这一点,因为消息不是文本,而是二进制.
阅读更多:FTPS和SFTP之间的区别| |之间的区别 FTPS与SFTP http://www.differencebetween.net/technology/internet/difference-between-ftps-and-sftp/#ixzz20KUGWr00
我不想假设任何事情,因为如果我错了,这会让我的工作更难,但当我通过C#/ .Net4发送文件时,这样:
var request = (FtpWebRequest) WebRequest.Create(FtpUrl + filename);
request.Method = WebRequestMethods.Ftp.UploadFile;
var secureString = new SecureString();
foreach (var b in Encoding.Default.GetBytes(FtpPassword))
secureString.AppendChar((char) b);
request.Credentials = new NetworkCredential(FtpUsername, secureString);
request.EnableSsl = true;
Run Code Online (Sandbox Code Playgroud)
这是SFTP还是FTPS?由于EnableSsl,我假设FTPS正如文章所示.
如果不是SFTP,我可以将其更改为SFTP吗?我在通过防火墙发送时遇到问题.
谢谢!
小智 6
SFTP使用SSH来传输文件.如果在远程计算机上运行ssh,则可以将其更改为此值.我不确定C#是否支持它.根据这个:http://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/817b4f71-7e88-4b62-b48a-8a5edca800fd/答案是否定的.
FTPS正在FTP上添加SSL.有点像HTTPS是HTTP之上的SSL.
您的代码肯定使用FTPS.
您的防火墙问题可能在此解释:http://en.wikipedia.org/wiki/Ftps#Firewall_incompatibilities
| 归档时间: |
|
| 查看次数: |
3367 次 |
| 最近记录: |