diff --git a/storage/filesystem.py b/storage/filesystem.py index 91762c8..8864ea1 100644 --- a/storage/filesystem.py +++ b/storage/filesystem.py @@ -23,6 +23,7 @@ $Id$ """ import os +import shutil from zope.interface import implements import transaction from transaction.interfaces import IDataManager @@ -93,6 +94,15 @@ class FileSystemStorage(object): subDir = params.get('subdirectory') return self.getDir(address, subDir) + def copyDataFile(self, sourceAddress, sourceParams, targetAddress, targetParams): + source = self.getDir(sourceAddress, sourceParams.get('subdirectory')) + target = self.getDir(targetAddress, targetParams.get('subdirectory')) + targetDir = os.path.dirname(target) + if not os.path.exists(targetDir): + os.makedirs(targetDir) + shutil.copyfile(source, target) + + class FSSDataManager(object):