Aller au contenu principal

Datei im MediaStore programmatisch per API wiederherstellen

Commentaires

1 commentaire

  • Zendesk API User
    Author: broszeit - 4/5/2012 8:50

    Hallo Christoph,

    Der MediaStoreRoot hat die Methode restore(), welche es ermöglicht gelöschte Elemente wiederherzustellen.

    Dies funktioniert beispielsweise mit folgendem Skript:

    //!Beanshell

        p = context.getProject();

        lang = p.getMasterLanguage();

        mediaStore = p.getUserService().getStore(de.espirit.firstspirit.access.store.Store.Type.MEDIASTORE, false);

       

              childs = mediaStore.getDeletedChilds(-1, 0);

              mediaStore.restore(childs.get(0).getDeletedElements().get(0), null);

    Die Methode mediaStore.getDeletedChilds(-1, 0) liefert eine Liste von Objekten vom Typ DeletedElementsInfo zurück. Hier wird nur der erste Listeneintrag genommen und eine Liste von ElementInfo Objekten geholt. Das obige Skript stellt erstmal nur das erste Element wieder her. Um wirklich alle wiederherzustellen muss man durch die beiden Listen iterieren, statt nur get(0) aufzurufen.

    Aufpassen muss man aber beim Aufruf von mediaStore.getDeletedChilds(-1, 0). Wenn es sich um ein großes Projekt handelt wird die Anzahl der Ergebnisse unüberschaubar groß und es kann zu starken Performanceproblemen kommen.

    Um das zu verhindern kann man die Anzahl der Ergebnisse auf z.B. 2000 begrenzen und nur ab einer bestimmten Revision wiederherstellen. (revisionDate ist das Datum ab dem die Elemente wiederhergestellt werden sollen, z.B. die letzten 10 Wochen)

    mediaStore.getDeletedChilds( project.getRevision(Date revisionDate, 2000)

    Viele Grüße

    Rouven

    0

Vous devez vous connecter pour laisser un commentaire.