我正在使用以下代码将文件上传到Alfresco
CloseableHttpClient client=HttpClients.createDefault();
HttpPost postMethod=new HttpPost(AlfrescoRequests.getUploadRequest()+"?alf_ticket="+DocumentUno.alFrescoSessionTicket.replace("\"", ""));
System.out.println(AlfrescoRequests.getUploadRequest()+"?ticket="+DocumentUno.alFrescoSessionTicket.replace("\"", ""));
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.RFC6532);
reqEntity.addPart("filedata", new FileBody(file));
reqEntity.addPart("alt_destination",new StringBody("workspace://SpacesStore/9a37fce5-2715-4730-a245-64f161304879"));
reqEntity.addPart("filename",new StringBody("ip_VM1985.txt"));
reqEntity.addPart("description", new StringBody("Descrizione del file"));
postMethod.setEntity(reqEntity);
System.out.println("executing request " + postMethod.getRequestLine());
CloseableHttpResponse resp = client.execute(postMethod);
AlfrescoRequests.getUploadRequest()提供REST请求URL(查询部分除外)
public static String getUploadRequest()
{
return DocumentUno.ECM_ADDRESS+"/alfresco/service/api/upload";
}
上传正确完成,我得到代码200,但没有设置描述,我不能指定文件名,它与原始文件保持一致。如果您需要其他详细信息,请告诉我。
答案 0 :(得分:1)
遗憾的是,/alfresco/service/api/upload
webscript无法处理元数据。这是Alfresco的一个众所周知的特征。处理文件名,但描述(实际上是cm:description属性,与您可能拥有的任何其他标准或自定义属性一样)都不会保存。
我相信webscript的description
参数被用作此API的第一个参数:
ScriptNode checkin(String history, boolean majorVersion)
...并且与文档标题/描述无关。
有一个开源插件(我创作)通过允许在上传期间指定任何其他元数据来克服此限制: http://softwareloop.com/uploader-plus-an-alfresco-uploader-that-prompts-for-metadata/
它包括一个repo amp和一个共享放大器。由于您使用的是Web服务,因此您只需要一个repo amp。