[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 08:57:53 PDT 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