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


_______________________________________________
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