[Zope3-dev] Re: IKeyReference for files
Martijn Faassen
faassen at startifact.com
Wed Mar 28 12:05:35 EDT 2007
Hey Christian,
Christian Theune wrote:
> Am Mittwoch, den 28.03.2007, 01:12 +0200 schrieb Martijn Faassen:
[snip]
> Quick shot on integrating the suggestion from Uwe:
>
> - Reserve an OID from the ZODB storage, maybe create a 'shadow' object
> in the ZODB.
> - Use a directory that maintains a hard link to the real file with the
> oid as its name.
>
> Voila.
>
> Btw: This is a good bit like blob support works in ZODB. ;)
This is an interesting idea; I hadn't considered looking at the blob
support.
This would allow one to use the PersistentKeyReference, right?
This hard-link directory, is that portable? I guess the blob support
does it, so that should be possible.
I guess there is another approach if you go for ZODB shadow objects
anyway, though - you could simply store the path in the shadow object
(or the filename or directory name, along with a reference to its
parent). If an object changes place, the key reference would still work,
and only the internal path would need to be changed. No need for a
directory with hard-links.
I have been taking the approach where no shadow objects are created so
far, as this makes it easier to browse a filesystem that may be
changing. I will have to consider how a shadow structure in the ZODB
affects this.
Then of course there is the 'svn up' situation. I imagine the changes
triggered by an SVN up can be translated into various added, moved and
deleted events, but that is going to be tricky in the face of moved
directories and the like.
Regards,
Martijn
More information about the Zope3-dev
mailing list