[Zope] Newbie question: using backing files.

Jim Washington jwashin@vt.edu
Fri, 24 Mar 2000 13:50:18 -0500


This should be easy, if you can get Zope read access to the files...

Use Jonothan Farr's Local File System Product.

http://www.zope.org/Members/jfarr/Products/LocalFS

-- Jim Washington

"Michael T. Richter" wrote:
> 
> I have a situation where there are some HTML files which I do not control
> that I would like to open up to access through my Zope server.  I don't want
> to import these HTML files as Zope objects because these files will
> frequently be edited and updated in place and I want any changes made to
> these HTML sources to be immediately reflected in Zope as they occur.  I
> also don't want to just use a URL to access them because a) the end-users
> shouldn't be aware that they're exiting Zope scope for these items and b) no
> URL could possibly point to these files since they're actually stored in a
> revision control system through a "view" (in essence, a virtual local
> directory tree).
> 
> So what this basically boils down to is this: I'd like to take a URL like
> this...
> 
>     http://my.intranet.site/Documentation/ComponentSpecs/MyComponent.html
> 
> ...and have the logic behind it conform roughly to the following pseudocode:
> 
>     1. Switch to "/viewdir/source/component/MyComponent/doc".
>     2. Open the file "ComponentSpec.html".
>     3. Serve up the contents of that file to the user.
> 
> The user should see no visible signs that the data comes from outside of the
> Zope environment.
> 
> I've already investigated using an external method to accomplish some of
> this.  For example I served up an outside file in almost exactly the way I
> wanted to accomplish this using code like the following:
> 
>     def testMethod():
>         s = ""
>         f = open("/viewdir/[...]/ComponentSpec.html", "r")
>         for l in f.readlines():
>             s = s + l[:-1]
>         return s
> 
> Indeed this does EXACTLY what I want.  (In any production version of
> this--this was only a quick'n'dirty hack--I'd be doing some significant
> caching and version checking.  But the example gets the drift across.)  The
> only problem is that I can't figure out how to translate a URL like the one
> I provided above into a method call like testMethod("MyComponent").  (The
> documentation on these things is a bit... spare.)
> 
> So does anybody out there have any suggestions?  I'm not afraid to get my
> hands dirty with Python (it being my scripting language of choice for the
> past 4+ years) and I'm not afraid to learn Stupid DTML Tricks.  I just don't
> know enough Zope yet to even be dangerous.

Jim Washington
Center for Assessment, Evaluation and Educational Programming
Virginia Tech