[Zope] ExternalMethod for exporting un-pickled Office files to
the filesystem etc
Tino Wildenhain
tino at wildenhain.de
Thu Jun 22 07:02:54 EDT 2006
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
More information about the Zope
mailing list