Bitch, bitch, bitch. Okay, Chris, what do you want in the FTP upstreamer? I don't think that Radio's upstreamer deletes either. Here is what I can do easily:
- CD to a directory. Throw if the dir isn't there.
- [done] Ensure a directory. Try my best to make sure that a directory (and the path up to it) exists.
- Delete a directory. The server will probably return an error if there are files in it. I will throw.
- Get the current directory.
- Move up a direcotry.
- [done] Upload a file into the current directory.
- Download a file in the current directory and return a stream. It would be easiest to buffer the entire file in memory.
- Delete a file in the current directory.
- [done] Return a text string with the current directory listing.
- Call SYST and return whatever the system gives us. This might help detect the type of system on the other end.
The only thing that isn't easy and that will probably take quite a while to get right is parsing the output of the directory listing. I don't have a bunch of servers to test this against to make sure it will work.
As for the upstreamer itself, I'd rather have it not try and sync the stuff on the server (and hence delete stuff) because I'd be afraid of loosing data. For instance, I upstream into the root of my site and I have all sorts of subdirs off of that. I'm setting up a weblog for Rachel on eightypercent.net and her root will be a subdir. I don't want to clobber her stuff whenever I upload my site.