Cheers, thanks a lot for that. I'll give it a go. I still may be interested in sponsoring a version with the improvements you mention etc and possibly more. Would that code be compatible for Unix and also for Windows NTFS?

Thanks

On 6/22/06, Tino Wildenhain <[EMAIL PROTECTED]> wrote:
michael nt milne schrieb:
> Hi
>
> Just wondering if anyone has written or attempted to write a script
> which would read through a site built using Zope and write all
> attached/uploaded files (Word, PDF, Excel) etc to a filesystem location
> in an un-pickled format. Therefore the files would be usable by their
> native application and be accessible outside of Zope. The business logic
> behind this is to be able to create, say once a day at night, a copy of
> all digital business assets for extra back-up and recovery purposes in
> case of disaster. Also this would be good for migration purposes if
> required.
>
> If not, how long would it take to create such a script? I could probably
> source a sponsor for it. I realise that it's best to do this at the
> application level and at the moment this would be through Plone.
>
> I've demoed all the Plone external storage products and also checked out
> DirectoryStorage but all these store pickled files etc.

----------- snip ----------
import os
import sys

try:
     targetdir=sys.argv[1]
except IndexError:
     print "usage: zopectl run %s <target dirrectory>" % sys.argv[0]

def filedump(resulttuple,basedir):
     pathname,fileobject=resulttuple
     print "dumping %s (%d Bytes)" % (fileobject.getId(),fileobject.size)
     o=open(os.path.join(basedir,pathname.replace ('/','_')+fileobject.getId()),"wb")
     o.write(str(fileobject.data))


for res in app.ZopeFind(app,obj_metatypes=['File'])
     filedump(res,targetdir)


--------- snip -----------

and run this over ZEO via zopectl run thescript.py somewhere/to/targetdir


There are possibly many improvements (creating subdirectories, fixing extensions
and so on)

Regards
Tino Wildenhain





--
michael
_______________________________________________
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to