如何使用 Alfresco Rest API 在文档中上传文件夹和子文件夹?

Posted

技术标签:

【中文标题】如何使用 Alfresco Rest API 在文档中上传文件夹和子文件夹?【英文标题】:How to upload a folder and subfolders within documents using Alfresco Rest API? 【发布时间】:2018-02-14 14:16:28 【问题描述】:

我想上传一个包含许多子文件夹的文件夹,这些子文件夹也包含许多文档,到 alfresco 存储库。我使用批量导入工具执行此操作,为每个文件夹/文档使用一个 xml 元数据文件来导入它们的属性。但要做到这一点,我必须为每个包含元数据的 xml 文件生成。所以我搜索了一个替代解决方案,我发现我可以在没有那个 xml 元数据文件的情况下使用 Alfresco Rest API 调用来做到这一点。但我真的不知道如何使用它进行上传。

如果有人可以帮助我,请。非常感谢。

【问题讨论】:

抱歉,到目前为止你尝试了什么,你在哪里卡住了? 感谢杰夫的回复。所以我的目标是将文件夹/文档从应用服务器导出到 Alfresco 的服务器。我尝试了批量导入服务,并且成功地在 Java 类中使用 cURL 命令以编程方式执行此操作。问题是如果我想使用这种方法,我必须为每个文件夹/文档生成元数据文件。所以我正在搜索是否有一种方法可以使用 Alfresco Rest API 来执行我之前所说的操作,而无需生成包含元数据的 xml 文件。 【参考方案1】:

如果您可以将文件移动到运行 Alfresco 的同一台服务器,则使用批量文件系统导入工具 (BFSIT) 可能是性能方面的最佳导入方法,即使您必须创建XML 清单文件描述了您要导入的每个文件随附的元数据。

如果该方法不能满足您的需求,您可以使用多种替代方法进行导入。其中包括:

    使用 Java、Python、.NET 或任何其他可以找到 CMIS 客户端库的语言编写利用 CMIS 的客户端。 Apache Chemistry 有几个,但还有其他的。

    使用作为 ADF 的一部分提供的客户端 javascript API。

    使用 Alfresco 公共 REST API。在 Alfresco 5.2 之前,“Alfresco API”是 CMIS 和特定于 Alfresco 的 REST 调用的混合体,用于处理 CMIS API 未涵盖的事情。在 5.2 中,有一组新的 RESTful 端点可用于各种事情,包括 creating nodes。

强烈建议查看API Explorer 以查看 API 上的 Swagger 文档。

【讨论】:

我尝试了 Apache Chemistry OpenCMIS,该方法的问题是,如果您在应用服务器中有多个子文件夹,它在开发中会变得更加复杂。为此,我正在寻找一种简单的方法来进行导出,使用 BFSIT 可以让我同时在露天文件夹和子文件夹中上传。如果这是最好的方法,还有另一个问题,例如,如果我在应用服务器中添加/修改文件夹/文档,它也必须在 Alfresco 中添加/修改。 这个想法是在两台服务器之间使用 Daily Timer 开发某种同步连接器。批量导入服务也会导出文件夹/文档,即使它们没有更改,这将花费更多时间来处理已经存在的内容。对于 Alfresco API,我真的不知道如何进行与使用 BFSIT 相同的操作。我尝试了 GET/POST 调用,但是从 sourceDirectory(我的应用程序服务器)导出并将其上传到像 BFSIT 这样的 targetPath(露天),我没有找到它。非常感谢杰夫。 您可以采取多种方法。例如,您可以使用触发利用 CMIS 的脚本的 cron 作业。您可以使用 Apache Camel 来监控目录,然后它可以使用 CMIS 将文件移动到 Alfresco。您可以使用基于队列的方法,请参阅slideshare.net/jpotts/…。您可以通过 WebDAV 将目录映射到 Alfresco。真的,这取决于您和您的具体要求。如果您尝试了这些方法中的任何一种但遇到困难,请随时创建一个新帖子,也许有人可以提供帮助。 你真的向我阐明了要遵循的路径。非常感谢杰夫先生。 上届 Alfresco DevCon 的以下演示也可以给你一些想法:slideshare.net/PiergiorgioLucidi/…youtube.com/watch?v=DOWAxrhuazk

以上是关于如何使用 Alfresco Rest API 在文档中上传文件夹和子文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 alfresco sdk 中的 alfresco webscripts 中的 CORS 错误?

如何向 Liferay 中新创建的用户授予 Alfresco 权限

使用 CMIS PHP 将文件上传到 Alfresco 时如何进行文件版本控制

Alfresco:如何在 Alfresco Share 中搜索链接(app:filelink 或 cm:link 类型的节点)?

Alfresco 和 drupal 集成

来宾用户 Alfresco / 无需登录即可访问