【发布时间】:2016-09-09 16:21:40
【问题描述】:
我有一个 Laravel 项目,我在服务器上创建文件,然后使用 RESTful 服务将文件夹及其所有内容上传到 Alfresco 站点。
到目前为止我做了什么:
- 登录正常
- 使用 nodeId 将文件上传到节点中
我正在努力解决的问题:
如何在站点下创建一个文件夹,知道根 nodeId/nodeRef,使用 RESTful 服务而不是 CMIS 服务?有没有更简单的方法来实现这一点?
我已经尝试使用下面的说明,以及之前在 Stackoverflow 上搜索过,尝试其他人发布的建议,但无济于事(即使我传递的 nodeId 有效,我也会收到 404 或 500 响应)
http://docs.alfresco.com/5.0/references/RESTful-NodeFolderPost.html
我还发现社区文档非常有限且简短,没有太大帮助。
任何帮助或指导将不胜感激! :)
编辑:
我已经阅读了这篇文章(以及许多其他文章): How to create folder in Alfresco by RESTful API
我已经构建了一些使用 RESTful 服务的功能,我需要做的最后一个是创建一个文件夹节点。我不介意使用 CMIS 解决方案,但我更愿意将其作为最后的手段,因为我构建的子系统是微型的,导入和使用另一个库会降低此解决方案的优先级。
说白了:有没有办法将 JSON 结构 POST 到 Alfresco 实例的 URL 以在我的站点的文档库下创建文件夹节点?
我已经尝试了这些规定的方法:
POST /alfresco/service/api/node/folder/{store_type}/{store_id}/{id}
POST /alfresco/service/api/site/folder/{site}/{container}/{path}
POST /alfresco/service/api/site/folder/{site}/{container}
第一个创建一个无法通过文档库访问的节点,另外两个返回 404/500 响应
【问题讨论】:
-
为什么要避免使用 CMIS?它在后台使用 RESTful API。
-
避免使用 CMIS 解决方案的原因是生成和筛选 Atom XML。除非你能在 Laravel/PHP 中提出一种简单的方法,否则我不得不花费大量时间遍历 Atom 提要 XML 的响应结构来完成上传文件的简单任务
-
不确定这是否会有所帮助,但是,Apache OpenCMIS 库为 PHP 客户端提供了一个实现(它还支持 Web 服务和 Atom 发布协议的绑定)。我使用 Java 实现,创建文件夹只是一行代码
-
感谢您的建议!我想把它作为最后的手段,我觉得在我正在做的小集成中使用整个库来解析 3 种不同类型的请求几乎没有必要(如果这有意义的话)。它是一个小型子系统,用于在站点下创建文件夹注释,以及上传大量文件。肯定有办法通过 RESTful 服务在站点根节点下创建文件夹?