Re: [Zope] ExternalMethod for exporting un-pickled Office files to the filesystem etc
michael nt milne schrieb: 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? at the moment, yes ( using os.path.join() for that) directory creating isnt that hard either, its just some recursion and checking... 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 )
Re: [Zope] ExternalMethod for exporting un-pickled Office files to the filesystem etc
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? ThanksOn 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 osimport systry: targetdir=sys.argv[1]except IndexError: print "usage: zopectl run %s " % 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/targetdirThere are possibly many improvements (creating subdirectories, fixing extensionsand so on)RegardsTino 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 )
Re: [Zope] ExternalMethod for exporting un-pickled Office files to the filesystem etc
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 " % 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 )