[Zope] - Thoughts on FTP access

Jim Fulton jim@Digicool.com
Tue, 08 Dec 1998 23:47:07 +0000


Paul Everitt wrote:
> 
> Chris wrote:
> > Sad but true, I was just sitting here thinking about how the
> > FTP access
> > thing might work into the object database (spurred on by Paul's
> > excellent start at a Q&A).
> 
> I think you and I need to get out more on weekends :^)
> 
> > One thing that struck me was how to manage Versioning when someone is
> > FTPing new objects in... either there should be an implicit
> > new Version
> > created, which I prefer really (more below), or a QUOTE SITE command
> > should be used...
> 
> I'm not clear on what problem you are trying to solve here.  Is it that
> you view the entire FTP session as one atomic transaction, and nothing
> should be "live" until they either log out or do some kind of commit?
> 
> > The reason I prefer an implict new version (perhaps named
> > FTP-YYYYMMDDHHMMSS based on the start time of the session) is
> > because at
> > least with the tools I use most of the time to work with web sites
> > (BBEdit, Emacs, GoLive CyberStudio) there's really no option to send
> > commands ahead of things, so you're stuck with the default behavior.
> 
> _If_ I've stated you goal correctly above, I'll confess I think you're
> on to something.  FTP is different than HTTP as it is stateful.  You log
> in, do a bunch of requests, then log out.  Thus, it is valid to re-think
> the transaction model for ftp.

I wouldn't rely too much on the state-full-ness of FTP.  
Many FTP tools tear-down FTP connections after a period
of time and reestablish them as needed.  You wouldn't
want your application/editing sematics to be dictated by some
tool like ange-ftp.


> As for choosing between implicit or explicit, how about have it both
> ways?  That is, have a knob in the Zope GUI that lets you set how FTP
> transactions should work on a folder?

Possibly, although I think that sessions would provide a more direct
way to control this.  I'm planning to add a feature to sessions
that would allow sessions to be turned on by traversing them, rather
than with cookies.  For example, suppose you have a folder, F, containing
a document, D, and a session S.  Doing an FTP put to:

  F/D

whould modify the document directly, but doing a put to:

  F/S/D

would make the modification in a session.

Actually, (undocumented sigh) Draft objects do this
now.  In fact, you could use a Draft object disable
FTP access except in sessions.
 
Jim

--
Jim Fulton           mailto:jim@digicool.com
Technical Director   (540) 371-6909              Python Powered!
Digital Creations    http://www.digicool.com     http://www.python.org

Under US Code Title 47, Sec.227(b)(1)(C), Sec.227(a)(2)(B) This email
address may not be added to any commercial mail list with out my
permission.  Violation of my privacy with advertising or SPAM will
result in a suit for a MINIMUM of $500 damages/incident, $1500 for
repeats.