Как я могу получить доступ к файлам в Alfresco, используя CMIS REST API?
Я установил Alfresco Community v4.1 для использования в моем приложении. Я хочу получить доступ к его содержимому (список файлов, добавить, удалить и т. Д.) С помощью CMIS REST API
, Я не нашел ни одного примера для конечной точки, которую мне нужно использовать. Я реализовал небольшой CMIS
клиент (вы можете получить информацию об этом здесь), используя Apache Chemistry
и перечисляя содержимое пространства моего пользователя, и я получаю этот результат:
[Folder] workspace://SpacesStore/624914c7-3ca2-4937-a612-96f1df928cc1 - Dictionnaire de données
[Folder] workspace://SpacesStore/846c69d4-4ec2-44c8-972d-f975d9b98d41 - Modèles d'espace
[Folder] workspace://SpacesStore/09fe45df-9cba-4843-a1cb-944807e44267 - Projet de conception logicielle
....
[Folder] workspace://SpacesStore/ab5cab42-2b47-4042-a8f5-57bb06007cc3 - Espaces Utilisateurs
[Folder] workspace://SpacesStore/86f1c760-905e-4920-98a8-a6bdd10aa732 - ombinte
[Folder] workspace://SpacesStore/2dbc6156-fdfa-4ddc-9187-481992570369 - MonProjet
[Folder] workspace://SpacesStore/fb3bb96f-3eb0-40a5-a890-3d06d6e781cf - Carnet 200
[Folder] workspace://SpacesStore/b9acaf70-d5d5-4dba-a354-bae63ba96072 - Carnet 100
[Docment] workspace://SpacesStore/9c3c6e63-e217-47a8-8216-298d2419cffa;1.0 - file.pdf
Когда я пытаюсь составить список содержимого узла, я всегда получаю 404
ошибка.
http://127.0.0.1:8080/alfresco/service/api/node/content/workspace/SpacesStore/ab5cab42-2b47-4042-a8f5-57bb06007cc3
Где я могу найти документацию о том, как реализовать CMIS REST API для Alfresco?
2 ответа
Вы можете использовать этот метод для доступа к вашему хранилищу
попробуйте это работало нормально для меня
private static Session getSession(String serverUrl, String username, String password) {
SessionFactory sessionFactory = SessionFactoryImpl.newInstance();
Map<String, String> params = new HashMap<String, String>();
params.put(SessionParameter.USER, username);
params.put(SessionParameter.PASSWORD, password);
params.put(SessionParameter.ATOMPUB_URL, serverUrl);
params.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
List<Repository> repos = sessionFactory.getRepositories(params);
if (repos.isEmpty()) {
throw new RuntimeException("Server has no repositories!");
}
return repos.get(0).createSession();
}
Этот метод получает сеанс из вашего хранилища с вашей собственной информацией
serverUrl : http://" + ipAlfresco + "/alfresco/api/-default-/public/cmis/versions/1.0/atom
username : admin
password : admin
Надеюсь, что это помогло вам.
Официальная документация Alfresco объясняет это довольно хорошо. Вы не должны думать о CMIS как о самом REST API. CMIS - это стандарт взаимодействия, целью которого является предоставление универсальных, не зависящих от поставщика средств запроса ваших данных.
В любом случае... Ваша проблема, кажется, в том, что используемый вами узел ссылки предназначен для папки, к которой не работает служба, к которой вы обращаетесь. Попробуйте вместо этого с...
http://127.0.0.1:8080/alfresco/service/api/node/content/workspace/SpacesStore/9c3c6e63-e217-47a8-8216-298d2419cffa
... и посмотреть, если вы найдете свой контент.
Для папок, попробуйте ссылку WebDAV, например: http://localhost:8080/alfresco/webdav/Sites/swsdp/documentLibrary/Agency%20Files