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

时间:2014-02-25 11:53:56

标签: c# text proxy ftp append

我正在尝试将一个String附加到我的ftp服务器上的文本文件中。 正如我在微软的开发者网络中读到的那样,HTTP代理不支持这种情况。

  

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

现在因为我的公司使用ftp代理,我试着用我在这个帖子中读到的东西:

FTP File Upload with HTTP Proxy

  

大多数FTP代理在连接上做他们的事情,所以如果你没有   代理,你这样做:

     

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

     

使用FTP代理,您可以:

     

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

这个问题虽然..我不知道我在哪里可以选择我的服务器上的路径..因为我输入它作为“用户名”

我现在尝试了很多,但没有让它工作.. 我的问题是:有没有人使用FTP FTP代理成功地将字符串附加到文本文件? 任何人都可以建议我一个好的第三方图书馆来处理这个?我遇到过Xceed FTP和Rebex ..但它们都是商业版..

喝彩! 菲尔

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:0)

这取决于你是否有一个真正的FTP代理(例如,它说的是FTP协议),或者你有一个HTTP代理,它也可以处理ftp:// URL。在后一种情况下,可能无法将数据附加到现有文件。

如果你有一个真正的FTP代理,你应该只能使用你常用的FTP库,只能调整登录过程。大多数情况下,例如在FTP代理中以“user @ host”身份登录用于将FTP连接转发到主机,但详细信息取决于代理。一旦您拥有代理FTP连接,您就可以发出APPE命令将数据添加到现有文件,例如与未经代理的FTP连接一样。