2009-12-23 82 views
2

我在使用Curb(ruby curl bindings)進行FTP下載時遇到問題。遏制epsv問題

當擴展的被動模式失敗時,它看起來像路邊不會回落到簡單的被動模式。從日誌摘錄如下:

< 250 Directory changed to /outgoing/productcatalog/35591 
> EPSV 
* Connect data stream passively 
< 229 Entering Passive Mode (|||40938|) 
* Trying 216.34.207.42... * Connecting to 216.34.207.42 (216.34.207.42) port 40938 
* Connection failed 
* Expire cleared 
* Closing connection #0 

然後在罰球捲曲:: ERR :: ConnectionFailedError:無法連接到服務器

但是,如果我在命令行中使用捲曲,我得到

< 250 Directory changed to /outgoing/productcatalog/35591 
> EPSV 
* Connect data stream passively 
< 229 Entering Passive Mode (|||43267|) 
* Trying 216.34.207.42... Connection refused 
* couldn't connect to host 
* got positive EPSV response, but can't connect. Disabling EPSV 
> PASV 
< 227 Entering Passive Mode (216,34,207,42,169,4) 
* Trying 216.34.207.42... connected 

解決方案是完全禁用epsv,但對於Curb來說似乎不可能,沒有這樣的選項。在這種情況下可以做些什麼?

+0

Digg這個問題,我也遇到過這個狗屎 - 我可以在捲曲中使用--disable-epsv,但似乎沒有辦法在CURB中設置?在C API中,它顯示CURLOPT_FTP_USE_EPSV是一個選項,但我沒有在路邊看到這個提供 – 2010-10-24 15:32:56

+0

最終我最終使用反引號調用了正常捲曲。 – 2010-10-25 07:33:21

回答

0

禁用EPSV的libcurl選項是一個簡單的布爾選項,而且curb應該已經支持很多其他類似的選項。爲此添加支持應該是相當簡單的。