如何通过REST API在Alfresco中创建新文档?

问题描述:

如何使用Rest API在Alfresco中创建某种类型的文档。我希望收到发送请求的URL和所需参数列表。试图用http://wiki.alfresco.com/wiki/Repository_RESTful_API_Reference#Create_folder_or_document_.28createDocument.2C_createFolder.29,但它没有工作,因为它不能确定哪些参数发送到这个API如何通过REST API在Alfresco中创建新文档?

+1

你使用哪种版本的Alfresco? 您是否想要使用CMIS或Alfresco的内部REST API? 您的文档应包含哪种类型,您是否拥有自定义内容模型? 你想在哪里创建文档? – alfrescian

+0

我使用的是Alfresco 4.2.c的一个版本。我想使用内部REST API,文档必须是由我创建的类型nid_employeeType,Model创建的文档,必须在具有名称的文件夹中创建文档在名为Jazz的站点中组织文档库 – Yauheni

+0

是否要创建文件还是上传文件? – alfrescian

这里有一些链接上手露天+ CMIS - 这应该有助于解决你的问题一般:https://forums.alfresco.com/forum/developer-discussions/alfresco-api/cmis-resources-tutorials-and-examples-03212012-1456

您可以创建您的owen webscript REST并根据您的喜好进行个性化处理,或者您可以使用此webscript“/ api/upload”。

要创建文档,您需要使用cmis系列的查询。查询如下:

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>name</title>' + 
     '<summary>name</summary>' + 
     '<cmisra:object>' + 
     '<cmis:properties>' + 
     '<cmis:propertyId propertyDefinitionId="cmis:objectTypeId">' + 
     '<cmis:value>type</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 

name - document name;

type - document type;

nodeRef - Alfresco中的文件夹ID。

要在类型中创建文档,请指定cmis:document。其他疑问,您可以在这里找到:

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

将使用REST API,而不是CIMS

import json 
import requests 
import os, sys 

strUrl = 'http://your.site.com:8080/alfresco/service/api/' 
strAuth = ('username', 'password') 
strFilename = "somethingtoupload.pdf" 
objFile= {'filedata' : open(strFilename,'rb')} 
strData={'siteid': 'site','containerid': 'documentlibrary', 'uploaddirectory': 'somefolder'} 

result = requests.post (strUrl+'upload',files=objFile,data=strData,auth=strAuth) 
print result.status_code