Open IT Experts for Enterprise

Zylk empresa de desarrollo de ecommerce

Uploaders simples en alfresco II: openCMIS

Cesar Capillas
Cesar Capillas

Siguiendo con el articulo del otro día de uploaders simples, vamos a
picar esta vez algo de código java con la ayuda de mi compañero Daniel
Sanchez. En el ejemplo de uploader de a continuación utilizamos
Alfresco 3.4 Community con las librerías openCMIS (y de manera similar
a como hicimos con python y php en el artículo anterior). Ahí va el código:

package cmis;
import java.io.*;
import java.math.BigInteger;
import java.net.*;
import java.util.*;
import org.apache.chemistry.opencmis.*;

public class OpenCMISUploader {

    public static void main (String[] args) throws FileNotFoundException {
       
        Map<String, String> parameters = new HashMap<String, String>();
        parameters.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
       
        parameters.put(SessionParameter.ATOMPUB_URL, " http://alfie.zylk.net:8080/alfresco/service/cmis");
        parameters.put(SessionParameter.REPOSITORY_ID, "cbcce6d5-2d9d-4878-93ae-de75b96ad14d");
        parameters.put(SessionParameter.USER, "admin");
        parameters.put(SessionParameter.PASSWORD, "secret");

        // create the session
        Session session = SessionFactoryImpl.newInstance().createSession(parameters);

        File file = new File(args[0]);
        String space = args[1];
       
        FileNameMap fileNameMap = URLConnection.getFileNameMap();
        String mimetype = fileNameMap.getContentTypeFor(file.getName());
       
        FileInputStream fis = new FileInputStream(file);
        BigInteger bi = new BigInteger(file.length() + "");
        ContentStream contentStream = new ContentStreamImpl(file.getName(), bi, mimetype, fis);
       
        Map<String,String> newDocProps = new HashMap<String, String>();
        newDocProps.put(PropertyIds.OBJECT_TYPE_ID, BaseTypeId.CMIS_DOCUMENT.value());
        newDocProps.put(PropertyIds.NAME, file.getName());
       
        ((Folder)session.getObjectByPath(session.getRootFolder().getPath() + space))
                        .createDocument(newDocProps, contentStream, VersioningState.NONE);

        System.out.println("Hecho!");
    }   
}


De esta manera ejecutamos el comando en la terminal:

java -jar CMISUploaderAlfresco.jar /home/cesar/sinadura.pdf test

y esto subirá el fichero sinadura.pdf a /Espacio Raiz/test

Hay que tener en cuenta que en alfresco debemos exponer el
repositorio en alfresco-global.properties

#
# CMIS Repo
#
repo.remote.endpoint.url=http://alfie.zylk.net:8080/alfresco/service/cmis


Y es necesario obtener el uid del repositorio, ya sea a través de:

http://alfie.zylk.net:8080/alfresco/service/cmis/index.html


o bien via curl:

curl -u admin:secret
"http://alfie.zylk.net:8080/alfresco/s/cmis" | grep repositoryId

Si te ha parecido interesante comparte este post en RRS

Facebook
LinkedIn
Telegram
Email

Leer más sobre temas relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *