【问题标题】:Creating a sub folder node in Alfresco Community Edition v5.0.0在 Alfresco Community Edition v5.0.0 中创建子文件夹节点
【发布时间】: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 服务在站点根节点下创建文件夹?

标签: php rest laravel alfresco


【解决方案1】:

所以我刚刚找到了对我自己的问题的 StackOverflow 答案 - 我希望任何正在寻找该问题的解决方案的人都能找到它,这样可以节省他们几天的开发时间:

您可以在 documentLibrary 根目录中创建一个节点,如下所述: https://stackoverflow.com/a/24010096/3951987

请求:

URL: {alfresco_server}/alfresco/service/api/site/folder/{site_name}/documentLibrary/
Body: 
{
"name" : /*folder_name*/,
"title": /*folder_title*/,
"description" : /*folder_description*/,
"type" : "cm:folder"
}

参数说明:

  • alfresco_server:您的 Alfresco 实例所在的域
  • site_name:您要在 Alfresco 实例中访问的站点的名称
  • folder_name:(必填)您的文件夹名称。
  • folder_title:(可选)文件夹的标题。这是文件夹的人类可读版本,允许使用空格。
  • folder_description:(可选)此节点/文件夹的描述。

您可以在“.../documentLibrary/”之后的 URL 中附加一个文件夹名称来创建子目录。

感谢所有在这里提出解决方案建议的人:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多