Beispiel #1
0
 def deletefile(self, filename):
     """
     """
     if (self.getParentDatabase().getStorageAttachments()):
         storage = FileSystemStorage()
         storage.unset(filename, self)
     else:
         if filename in self.objectIds():
             self.manage_delObjects(filename)
def main():
    global app

    attr_storage = AttributeStorage()
    fss_storage = FileSystemStorage()
    
    app = makerequest(app)
    
    _policy = PermissiveSecurityPolicy()
    _oldpolicy = setSecurityPolicy(_policy)
    newSecurityManager(None, OmnipotentUser().__of__(app.acl_users))

    global portal, ct
    
    portal = app[ploneid]
    setSite(portal)
    
    # Initialization
    log('Initialized at', datetime.now().isoformat())
    
    ct = getToolByName(portal, 'portal_catalog')
    fssfiles = ct.searchResults({'portal_type':pt})
    
    for fssfile in fssfiles:
        log('Migrating: [%s] %s in %s ... ' %(fssfile.portal_type,fssfile.id, fssfile.getPath()))
    
        obj = portal.restrictedTraverse(fssfile.getPath())
    
        try:
            f_tp = 'image'
            field = obj.Schema()[f_tp]
        except KeyError, e:
            f_tp = 'file'
            field = obj.Schema()[f_tp]
    
    
        fieldstorage = field.storage
    
        try:
            mimetype = field.getContentType(obj)
        except:
            mimetype = obj.getContentType()
    
        content = StringIO(str(fss_storage.get(f_tp, obj)))
    
        # Cleaning the storage 
        fss_storage.unset(f_tp, obj)
    
        field.set(obj, content)
        field.setContentType(obj, mimetype)
        field.setFilename(obj,obj.id)
    
        log('Transaction commit and Data.fs synchronism.')
        transaction.commit()
        app._p_jar.sync()
Beispiel #3
0
def main():
    global app

    attr_storage = AttributeStorage()
    fss_storage = FileSystemStorage()

    app = makerequest(app)

    _policy = PermissiveSecurityPolicy()
    _oldpolicy = setSecurityPolicy(_policy)
    newSecurityManager(None, OmnipotentUser().__of__(app.acl_users))

    global portal, ct

    portal = app[ploneid]
    setSite(portal)

    # Initialization
    log('Initialized at', datetime.now().isoformat())

    ct = getToolByName(portal, 'portal_catalog')
    fssfiles = ct.searchResults({'portal_type': pt})

    for fssfile in fssfiles:
        log('Migrating: [%s] %s in %s ... ' %
            (fssfile.portal_type, fssfile.id, fssfile.getPath()))

        obj = portal.restrictedTraverse(fssfile.getPath())

        try:
            f_tp = 'image'
            field = obj.Schema()[f_tp]
        except KeyError, e:
            f_tp = 'file'
            field = obj.Schema()[f_tp]

        fieldstorage = field.storage

        try:
            mimetype = field.getContentType(obj)
        except:
            mimetype = obj.getContentType()

        content = StringIO(str(fss_storage.get(f_tp, obj)))

        # Cleaning the storage
        fss_storage.unset(f_tp, obj)

        field.set(obj, content)
        field.setContentType(obj, mimetype)
        field.setFilename(obj, obj.id)

        log('Transaction commit and Data.fs synchronism.')
        transaction.commit()
        app._p_jar.sync()