miyamuko/xl-open-uri — Issue #1: FTP over HTTP Proxy 対応
Author: miyamuko
Created: 2012-02-13 10:56:03+00:00
State: open

Ruby の open-uri は FTP over HTTP proxy に対応している。
xl-open-uri でも対応する。

## FTP over HTTP proxy 概要

* client - proxy server 間は HTTP で通信
* proxy server - FTP server 間は FTP で通信
* FTP の RETR コマンドは HTTP GET に変換
* FTP の STOR コマンドは HTTP PUT に変換
* STOU, APPE とかは ないかな？

http://sonic64.com/2004-05-11.html

## xl-open-uri 仕様

* proxy サーバの指定方法
- :proxy 引数で指定する
- 環境変数 ftp_proxy は見る?
* プロキシを使うか使わないかの判断は?
- http の場合は WinHTTP がある程度面倒を見てくれている
- ftp で接続するか http に変換するかは自分でやらなければいけない
* meta データの取得
- 今の xl-open-uri のプロトコルハンドラの仕様ではプロトコルハンドラを定義したパッケージの関数が呼ばれる
- ftp なら xl-open-uri.protocols.ftp が http なら xl-open-uri.protocols.http が
- FTP over HTTP proxy の場合は xl-open-uri.protocols.http に処理を丸投げできるようにする必要がある
* GET への変換
- これは簡単
* PUT への変換
- http のほうは送信するデータを :body 引数で指定するが、ftp のほうはストリームに書いてもらっている
- ストリームに書かれたデータをすべて取得してから PUT?
- または chunked upload?