C#-带有代理的FTP将字符串附加到文件中



我正在尝试将字符串附加到ftp服务器上的文本文件中。正如我在微软的开发者网络中所读到的,HTTP代理不支持这一点。

如果指定的代理是HTTP代理,则只有DownloadFile,支持ListDirectory和>ListDirectoryDetails命令。

现在因为我的公司使用ftp代理,我试图使用我在这个线程中读到的东西:

使用HTTP代理上传FTP文件

大多数FTP代理都在连接上完成自己的工作,所以如果您没有代理,你这样做:

服务器:myftpserver.com用户:我密码:pwd

使用FTP代理,您可以:

服务器:ftpproxy.mydomain.com用户:me@myftpserver.com密码:pwd

但问题是。。我不知道在哪里可以在服务器上选择路径。。因为我输入它作为"用户名">

我现在试了很多,但都没成功。。我的问题是:是否有人使用FTP代理成功地将字符串附加到文本文件中?有人能给我推荐一个好的第三方图书馆来处理这个问题吗?我遇到了Xceed FTP和Rebex。。但它们都是商业性的。。

欢呼!phil

如果您使用HTTP代理进行FTP,则它是:

1) FTP over HTTP-这实际上是一个HTTP代理,可以处理FTP://URL(请参阅Steffen Ullrich的回复)。在这种情况下,您本质上是在客户端使用HTTP协议(而不是FTP)(代理充当翻译层)。正因为如此,功能有些有限。只支持基本的FTP操作,而且它似乎有点特定于代理。

2) HTTP CONNECT-大多数HTTP代理都支持"CONNECT"方法。这可用于通过代理建立到指定服务器/端口的隧道。它主要用于传输HTTPS流量,一些代理只允许连接到特定端口(如HTTPS使用的443)。但是,如果代理允许隧道传输到任何端口,则可以(错误地)使用HTTP CONNECT来隧道传输FTP协议(只要所有传输都使用被动模式)。在这种情况下,所有FTP操作都是可能的,包括附加到文件或恢复传输。

大多数商业FTP组件都支持HTTP CONNECT代理(Rebex支持)。对于HTTP上的FTP,我建议寻找一个好的HTTP组件。

这取决于您是有一个真正的FTP代理(例如,它表示FTP协议),还是有一个HTTP代理,它也可以处理FTP://URL。在后一种情况下,可能没有办法将数据附加到现有文件中。

如果你有一个真正的FTP代理,你应该可以只使用你通常的FTP库,只调整登录过程。主要类似于以"user@host"在FTP代理用于使其将FTP连接转发到主机,但细节取决于代理。一旦您有了代理的FTP连接,您就可以发出APPE命令将数据添加到现有文件中,例如,使用未代理的FTP。

最新更新