在PHP中爲cURL/FTP編寫包裝類。當我使用特定的cURL選項獲取或放置文件等標準操作時,cURL不會將FTP目錄索引作爲默認響應返回。cURL FTP自定義命令:運行不返回目錄索引?
但是:當我運行自定義FTP與CURLOPT_CUSTOMREQUEST
,CURLOPT_QUOTE
或CURLOPT_POSTQUOTE
命令,例如DELE
或RNFR|RNTO
,FTP服務器返回目錄索引除了運行命令的默認響應。 (如果命令成功)
這是預期的行爲,因爲CURLOPT_URL
也被傳入,沒有上傳/下載索引就是你得到的。 (並且我無法使用CURLOPT_URL
連接到服務器W/O,或者我可以嗎?)但我真的不在乎浪費帶寬/ RAM來接收我運行的每個命令的索引。大型目錄或大量單個命令會出現問題。
當然,我可以通過將所有操作集成到一個單一的curl_exec()
調用中來最大限度地減少浪費。我可以通過添加一個CURLOPT_FTPLISTONLY
來最小化響應,但這仍然是一個不必要的數據被返回的負載。或者我可以附加一個失敗的命令,非常黑客,並且只給我一個失敗結果,儘管cmd已經完成。或者我終於可以將CWD放入一個我知道是空白的目錄吧? {^_^}
然後:有沒有辦法告訴cURL不要打擾返回目錄索引?爲cURL實現請求池使用該類的其他代碼中的不同時間/位置進入的FTP調用也會阻止我實時返回單獨的成功/失敗響應。