[Twisted-Python] FTP / Common VFS Layer
Andrew Bennetts
andrew-twisted at puzzling.org
Thu Apr 21 20:37:34 MDT 2005
On Fri, Apr 22, 2005 at 01:47:33AM +0000, Jp Calderone wrote:
> On Fri, 22 Apr 2005 11:23:44 +1000, Andrew Bennetts wrote:
[...]
> >
> >So, I don't think it's too early to start improving the IFTPShell stuff
> >(which I had been consciously ignoring until now). The other work that
> >needs doing shouldn't tend to get in the way very much, because the basics
> >have been fixed.
>
> I think a good direction to take with IFTPShell is to drop it entirely and
> use an entirely new and different interface. If anyone complains about
> compatibility later (which no one will because ftp was too broken to use
> until the work you did on it, and the interface is too specific to have
> been usefully implemented differently anyway), we can always write an
> adapter from the new to the old.
Yeah. I'm not at all concerned about backwards-compatibility for code that
never worked.
> Using something like, say, IResource would be interesting, but I guess
> IResource isn't quite expressive enough to satisfy all the requirements.
IResource lacks quite a lot in terms of a read/write filesystem with
metadata like modification times and permission bits. In the Twisted tree,
something like twisted.conch.interfaces.ISFTPServer (as implemented by e.g.
twisted.conch.unix.SFTPServerForUnixConchUser) is much closer to what FTP
needs. I think the VFS stuff is closer again.
I think there may be some point in having an IFTPShell-like interface that
maps closely to what the FTP protocol needs, and adapters to map VFS stuff
(and even IResource for simple read-only trees) to that, but I haven't
thought deeply about it.
-Andrew.
More information about the Twisted-Python
mailing list