2017-07-23 2 views
0

Ich habe ein Projekt alfresco Amp erstellt. ein Dokument hinzuzufügen, Ich betreibe diesen Test Klasse:Wie kann ich auf Dokumente im Freien zugreifen?

public class Test { 
 

 
    public static void main(String[] args) throws UnsupportedEncodingException { 
 
     Map<String, String> sessionParameters = new HashMap<String, String>(); 
 
     sessionParameters.put(SessionParameter.USER, "admin"); 
 
     sessionParameters.put(SessionParameter.PASSWORD, "admin"); 
 
     sessionParameters.put(SessionParameter.ATOMPUB_URL, "http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom"); 
 
     sessionParameters.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value()); 
 
     SessionFactory sessionFactory = SessionFactoryImpl.newInstance(); 
 
     Session lSession = sessionFactory.getRepositories(sessionParameters).get(0).createSession(); 
 
     Folder root = lSession.getRootFolder(); 
 
       Map<String, Object> folderProperties = new HashMap<String, Object>(); 
 
       folderProperties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:folder"); 
 
       folderProperties.put(PropertyIds.NAME, "oo"); 
 
       Folder newFolder = root.createFolder(folderProperties); 
 
     Map<String, Object> lProperties = new HashMap<String, Object>(); 
 
     String name = "lol.txt"; 
 
     lProperties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document"); 
 
     lProperties.put(PropertyIds.NAME, name); 
 
     byte[] content = "CMIS Testdata One".getBytes(); 
 
       InputStream stream = new ByteArrayInputStream(content); 
 
       ContentStream contentStream = new ContentStreamImpl(name, new BigInteger(content), "text/plain", stream); 
 
       Document newContent1 = newFolder.createDocument(lProperties, contentStream, null); 
 
     System.out.println("Document created: " + newContent1.getId()); 
 
    } 
 
}

Das Dokument mit Erfolg erstellt wird; Ich habe: Document created: e3184105-e59e-4b8a-88e7-9442942433a4;1.0

Mein Problem ist, wie kann ich auf dieses Dokument zugreifen (Mit welcher URL kann ich auf dieses Dokument zugreifen). Bitte helfen ?.

+1

Zugriff darauf wie? Durch Teilen? Durch CMIS? Herunterladen? Andere? – Gagravarr

Antwort

1

Es sieht so aus, als hätten Sie ein Dokument erstellt und möchten nun wissen, welche URL verwendet werden soll, um dorthin zu gelangen. Sie haben viele Möglichkeiten, umfassen, von denen einige ...

  1. die Download-URL Alfresco Verwenden Sie Web-App:

    http://localhost:8080/alfresco/s/api/node/workspace/SpacesStore/dac36aab-dd49-4abc-a4bc-0e0d5729c9ad/content;cm%3Acontent

  2. Verwenden Sie die Download-URL Share-Web-App:

    http://localhost:8080/share/proxy/alfresco/slingshot/node/content/workspace/SpacesStore/dac36aab-dd49-4abc-a4bc-0e0d5729c9ad/test.txt

  3. Verwenden Sie die CMIS-URL (AtomPub-Bindung):

    http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom/content/test.txt?id=dac36aab-dd49-4abc-a4bc-0e0d5729c9ad%3B1.0

  4. Verwenden Sie die CMIS URL (Browser-Bindung):

    http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser/root?objectId=dac36aab-dd49-4abc-a4bc-0e0d5729c9ad%3B1.0&cmisselector=content

  5. Schreiben Sie Ihre eigene URL-Handler, der den Eingangsstrom über CMIS und kehrt holt, die an den Anforderer streamen. Angenommen, Sie sind so etwas wie Spring MVC verwenden, suchen Sie den Code für das könnte wie:

    public InputStream download(String objectId) { 
        Session session = getSession(); 
        CmisObject obj = session.getObject(objectId); 
        Document doc = null; 
        if (obj.getBaseTypeId().equals(BaseTypeId.CMIS_DOCUMENT)) { 
         doc = (Document) obj; 
        } 
        return doc.getContentStream().getStream(); 
    } 
    

Jede der oben genannten Optionen eine Testdatei in einem Testordner übernimmt den Namen „test.txt“ mit einem Alfresco Node Referenz:

Arbeitsplatz: // SpacesStore/dac36aab-dd49-4abc-a4bc-0e0d5729c9ad

Und ein CMIS-Objekt-ID:

dac36aab-dd49-4abc-a4bc-0e0d5729c9ad; 1,0

Verwandte Themen