4

我正在为 Android使用Freshdocs

我可以使用这个 API 调用登录到 Alfresco 服务器:

GET /alfresco/service/api/login?u={username}&pw={password?}

但是如何在 Alfresco 中创建一个新文件夹?

4

3 回答 3

4

有两个主要选项,但这取决于您还想做什么,以及您正在运行什么版本的 Alfresco。

假设你想让事情变得非常简单,并且你只想创建一个文件夹,并且你使用的是 Alfresco 4.1 或更高版本,那么你可以使用org.alfresco.repository.node.folder.postwebscript。为此,只需像这样发布 JSON

 { "name": "NewNodeName" }

或者

{  
   "name": "NewNodeName",
   "title": "New Node Title",
   "description": "A shiny new node",
   "type": "cm:folder"
}

到 API,它需要一个类似的 URL/api/site/folder/{site}/{container}/{path}

或者,如果您想要执行许多不同的文件和文件夹操作(例如导航文件夹结构、创建文件夹、上传文件等),那么您应该改用CMISApache Chemistry是一个用于 CMIS 的优秀库,它甚至还有一个 Android 客户端!android 客户端的文档仍在编写中(仅添加了 Android 端口),因此如果您没有时间等待文档,您可能需要在邮件列表中询问。

于 2012-07-29T16:48:03.813 回答
2

要通过 api 创建文件夹,您可以使用以下查询:

a) 使用父文件夹的完整路径创建定义类型的文件夹

       url: "/../alfresco/service/api/site/folder/" + siteName + "/documentLibrary/" + parentFolderPath
       method: "POST"
       json: {
           name: name
           type: folderType
       }

siteName - 在 Alfresco 中创建的网站名称;

parentFolderPath - 父文件夹的路径;

名称 - 文件夹名称;

类型 - 文件夹类型。

例子:

     url: "/../alfresco/service/api/site/folder/example/documentLibrary/books"
       method: "POST"
       json: {
           name: "Pushkin"
           type: "cm:folder"
       }

发出请求后,将创建“Pushkin”文件夹。此文件夹位于“示例”网站上文档库的“books”文件夹中。

b) 通过 nodeRef 创建文件夹

nodeRef 是 Alfresco 中的对象 id。每个对象都有自己的 nodeRef。此请求在文件夹类型的给定对象内创建新对象。

       xml = '<?xml version="1.0" encoding="utf-8"?>' + '<entry xmlns="http://www.w3.org/2005/Atom"
    xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/"
    xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/">' +
           '<title>' + folderName + '</title>' +
           '<summary>' + folderName + '</summary>' +
           '<cmisra:object>' +
           '<cmis:properties>' +
           '<cmis:propertyId
    propertyDefinitionId="cmis:objectTypeId">' +
           '<cmis:value>' + folderType + '</cmis:value>' +
           '</cmis:propertyId>' +
           '</cmis:properties>' +
           '</cmisra:object>' +
           '</entry>';
       url: "/../alfresco/service/api/node/workspace/SpacesStore/" +
    nodeRef + "/children"
       method: "POST"
       headers: {
           "Content-Type": "application/atom+xml;type=entry"
       },
       xml: xml

folderName - 文件夹名称;

folderType - 文件夹类型;

nodeRef - Alfresco 中的文件夹 ID。

例子:

       nodeRef = b544cd67-e839-4c60-a616-9605fa2affb7;
       xml = '<?xml version="1.0" encoding="utf-8"?>' +
           '<entry xmlns="http://www.w3.org/2005/Atom"
    xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/"
    xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/">' +
           '<title>Example of creating a folder</title>' +
           '<summary>Example of creating a folder</summary>' +
           '<cmisra:object>' +
           '<cmis:properties>' +
           '<cmis:propertyId propertyDefinitionId="cmis:objectTypeId">' +
           '<cmis:value>cm:folder</cmis:value>' +
           '</cmis:propertyId>' +
           '</cmis:properties>' +
           '</cmisra:object>' +
           '</entry>';
       url: "/../alfresco/service/api/node/workspace/SpacesStore/" + nodeRef + "/children"
       method: "POST"
       headers: {
           "Content-Type": "application/atom+xml;type=entry"
        },
       xml: xml

您可以在此处找到其他服务及其描述:

http://jazzteam.org/en/technical-articles/list-of-alfresco-services/

于 2014-06-03T08:08:31.923 回答
1

你应该使用 POST /alfresco/service/api/path/{store_type}/{store_id}/{id}/children

阅读文档以获取详细信息:

http://wiki.alfresco.com/wiki/Repository_RESTful_API_Reference#Create_folder_or_document_.28createDocument.2C_createFolder.29

于 2012-07-29T16:49:10.040 回答