David, I've been interested in relaying FTP over HTTP (or HTTPS), or using a HTTP (HTTPS) server just to provide a file transfer service as a FTP server does. HTTP is a protocol that is easily routed (or proxied), encrypted, or filtered on the application layer. Thus it must be conveniently used to transfer files, for mirroring or so, over a virtual network constructed on the application layer. But the problem is how to deal "directory". For example, as long as I know, there is no standardized format of the representation of the content of directory in HTTP, as defined in FTP by the response format of the MLSD command. Since I'm reminded on this issue, I tried to realize it in DeleGate/9.9.8-pre2. A HTTP server by DeleGate with SERVER="ftpxhttp" with MOUNT="/* /*" (origin HTTP server) or with MOUNT="/* ftp://ftpserver/*" (FTP/HTTP gateway) interprets a special URL as follows: http://server/dir?ftpxcmd=NLST http://server/dir?ftpxcmd=MLSD http://server/dir?ftpxcmd=MLST http://server/dir?ftpxcmd=LIST&ftpxopt=-lt The HTTP (FTPxHTTP) server respond with the data representing a content of directory in the format that is compatible with the one from FTP servers for a FTP command. On the other hand, a FTP server by DeleGate with SERVER="ftp" with MOUNT="/* ftpxhttp://fxhserver/*" translates FTP request to HTTP request in URL as above, corresponding to each FTP commands (LIST, NLIST, MLST and MLSD). I confirmed it works using FTP clients including the ftp command and Firefox, with the following configuration. (server side) delegated -P9980 SERVER=ftpxhttp MOUNT="/* /*" or delegated -P9980 SERVER=ftpxhttp MOUNT="/* ftp://ftpserver/*" (client side) delegated -P9921 SERVER=ftp MOUNT="/* ftpxhttp://delegate:9980/*" (client) ftp localhost 9921 User: ftp Pass: xxx@yyy > ls -l > ls -lt Yutaka In message <_A4800@delegate-en.ML_> on 05/07/10(02:06:46) you David Fogarty <pxyjabdyi-q45w4plpoza6.ml@delegate.org> wrote: |Hi Yutaka, |Thank you for your quick and detailed response. You confirmed what I |suspected. I will look for other means of accomplishing my goals. | |Thanks again, |Dave Fogarty | |-- |Senior System Administrator |CollegeNET.com | |On Thu, 6 May 2010, Yutaka Sato wrote: | |> Hi Dave, |> |> In message <_A4798@delegate-en.ML_> on 05/06/10(09:28:20) |> you David Fogarty <pxyjabdyi-q45w4plpoza6.ml@delegate.org> wrote: |> |I'm trying to use delegate to create an FTP front-end to HTTP on the |> |back-end. Eventually, I'd like to do authenticated and anonymous GET and |> |PUT. So far, I am able to put HTTP in front of FTP, but not the other way |> |around. Is this even possible with delegate? |> | |> |SUCCESSFUL: |> |delegated -v -P:8021 SERVER=http MOUNT="/web/* http://127.0.0.1/*" MOUNT="/ftp/* ftp://127.0.0.1/*" |> | |> |FAILED: |> |delegated -v -P:88 SERVER=ftp MOUNT="/web/* http://127.0.0.1/*" MOUNT="/ftp/* ftp://127.0.0.1/*" |> |> It is interesting but not possible in the current implementation of |> DeleGate. In the protocol level, it is easy to map a stateful protocol |> as FTP (on client-side) to a stateless protocol as HTTP (on server-side). |> |> What is difficult is mapping the structure of resource tree, or, directory |> tree. For example, a URL as http://server/path1/path2/ might not mean |> "path2 is a directory under the directory path1" as in FTP. |> Also the format and the content of the response data for |> http://server/path1/ is not defined and can vary so widely. |> Thus it is not so easy to provide a HTTP server to a FTP client. |> |> If what you need is just mapping a HTTP URL to a FTP path and returning |> the content through without conversion (as HTML/HTTP to a file list/FTP), |> it is easy to extend DeleGate to do so. But if you need to see HTML as |> if it is a directory, the implementation will be fairly difficult. |> |> Cheers, |> Yutaka |> -- |> 9 9 Yutaka Sato <y.sato@delegate.org> http://delegate.org/y.sato/ |> ( ~ ) National Institute of Advanced Industrial Science and Technology |> _< >_ 1-1-4 Umezono, Tsukuba, Ibaraki, 305-8568 Japan |> Do the more with the less -- B. Fuller Cheers, Yutaka -- 9 9 Yutaka Sato <y.sato@delegate.org> http://delegate.org/y.sato/ ( ~ ) National Institute of Advanced Industrial Science and Technology _< >_ 1-1-4 Umezono, Tsukuba, Ibaraki, 305-8568 Japan Do the more with the less -- B. Fuller