[tahoe-dev] [tahoe-lafs] #731: what to do with filenames that are illegal on some systems

tahoe-lafs trac at allmydata.org
Sun Jun 14 15:57:53 UTC 2009


#731: what to do with filenames that are illegal on some systems
-----------------------------------+----------------------------------------
 Reporter:  zooko                  |           Owner:       
     Type:  defect                 |          Status:  new  
 Priority:  major                  |       Milestone:  1.5.0
Component:  code-dirnodes          |         Version:  1.4.1
 Keywords:  forward-compatibility  |   Launchpad_bug:       
-----------------------------------+----------------------------------------

Comment(by bewst):

 A few notes:

  * My first reaction was to say you had the right idea in rejecting
 nonportable names, but then I thought about how it might affect me.
 Although rejecting nonportable names on the way in is "safe" from a design
 evolution, point of view, it probably won't make customers happy when
 their backup fails partway through  because some file has a name tahoe
 didn't like.  It'll also be a problem for some people if files that used
 to save just fine start producing error messages.
  * You might want to decide what "portable" means before trying to solve
 this problem.  For example, are you planning to support VMS?  That changes
 what it means to be a legal filename.  One ambitious definition could be:
 works wherever Python works.
  * Many people have had to solve this sort of problem before you; this is
 one of those areas where you can benefit from their research, e.g.
 http://www.boost.org/doc/libs/1_39_0/libs/filesystem/doc/portability_guide.htm#recommendations.
  * FWIW, last I heard, Samba had given up on solving this problem
 correctly, though that may have changed.

 It seems to me that tahoe probably has enough flexibility to store ''any''
 filename, and many people will only be using it to store and retrieve
 files to/from the same system, so it should "just work" for that use case.
 In the other cases, it would probably be a good idea to provide a hook in
 the Python API for handling filenames that can't be represented, and when
 using the CLI, etc., there should be at least two options: translate the
 name via some encoding, with a warning, and cause a hard error.

 My 2c.

-- 
Ticket URL: <http://allmydata.org/trac/tahoe/ticket/731#comment:3>
tahoe-lafs <http://allmydata.org>
secure decentralized file storage grid


More information about the tahoe-dev mailing list