Move file from Alfresco repository to file system

cancel
Showing results for 
Search instead for 
Did you mean: 
armandolcini
Member II

Move file from Alfresco repository to file system

Hi,
I'm trying to develop a javascript for moving a file from Alfresco's repository to file system.
The javascript should trigger a file uploading in a directory of the repository and move it automatically to a file system directory. Is it possible to do that?
I use Alfresco 4.2 Enterprise Edition.
Thanks a lot,
Armando
3 Replies
davidciamberlan
Alfresco Employee

Re: Move file from Alfresco repository to file system

Ciao,

[ti rispondo in Italiano essendo sul forum italiano]

Puoi creare un trigger che intercetti l'upload di un file in una cartella utilizzando una semplice rule su tale cartella oppure un più complesso behaviour.
La parte che non mi sembra fattibile, data la natura web dell'applicativo, è lo spostamento del file in una cartella del filesystem esterno al repository di Alfresco. Penso tu possa al massimo proporre il download.

Questo se decidi di usare i webscript di alfresco.

Se invece puoi utilizzare una applicazione esterna, allora hai diverse opzioni tra cui scegliere. Ad esempio puoi creare un batch (o un monitor in tempo reale) in java che tenga d'occhio la tua cartella alfresco (tramite CMIS, REST, webdav,…) e quando nota cambiamenti esegua il download e la scrittura del file sul filesystem.

Se hai bisogno di ulteriori dettagli chiedi pure.
openpj
Moderator
Moderator

Re: Move file from Alfresco repository to file system

Forse il modo più agile è quello di utilizzare il Bulk File System Export, che è un plugin che è possibile installare all'interno di Alfresco e che permette di esportare qualsiasi contenuto utilizzando lo stesso formato del plugin Bulk File System Import.

In pratica viene esportato il binario del contenuto con in aggiunta le properties in formato Java Properties XML.

https://code.google.com/p/alfresco-bulk-export/


Un'altra strada potrebbe essere quella, come già introdotto da David, di utilizzare le Rule e l'esecuzione di una action per eseguire uno script.

E' possibile estendere la Javascript API di Alfresco in modo tale da aggiungere una nuova variabile nello scope per fare in modo di aggiungere l'esecuzione del seguente metodo Java:


public void exportFile(String path, ScriptNode scriptNode) {
      NodeRef nodeRef = scriptNode.getNodeRef();
      String name = (String) nodeService.getProperty(nodeRef, ContentModel.PROP_NAME);
      ContentReader reader = contentService.getReader(nodeRef, ContentModel.PROP_CONTENT);
      File file = new File(path+"/"+name);
        reader.getContent(file);
   }


In pratica si può lanciare in JS nel seguente modo, ipotizzando la propria variabile si chiami customUtils:


customUtils.exportFile("/path/assoluto/file/system",node);

dove node è l'istanza di una reference di un nodo (istanza classe ScriptNode).
armandolcini
Member II

Re: Move file from Alfresco repository to file system

Grazie mille a tutti e due, ho implementato il tutto proprio caricando un nuovo plugin con un metodo java richiamabile da un javascript che viene lanciato ogni qual volta viene inserito un nuovo documento in una particolare directory del repository (attraverso una rule).