2013-07-09 51 views
3

我想用Groovy脚本将文件上传到Confluence。 As this Pythonscript example! 我开始的代码转化为常规,使用Groovy将文件上传到Confluence?

// Groovy 
def server = new XMLRPCServerProxy("http://confluence:8090/rpc/xmlrpc") 
def spaceKey = "Area" 
def pageTitel = "FileUpload" 
def contentType = "application/pdf" 
def token = server.confluence2.login("UserName","Password") 
def page = server.confluence2.getPage(token, spaceKey, pageTitel) 
def fileName = "D:\\datamodel.pdf" 
def file = new File (fileName)  
// 
//Up to this point it works!!! 

,但我什么也没发现在常规最后的步骤!

//Python Script from Examplelink above 
//..... 
attachment = {}; 
attachment['fileName'] = os.path.basename(filename); 
attachment['contentType'] = contentType; 

server.confluence1.addAttachment(token, page['id'], attachment, xmlrpclib.Binary(data)); 

我想,我必须有一个附件对象和一个方法来存储附件在服务器上给定的页面。

最终工作CODE

def server = new XMLRPCServerProxy("http://confluence:8090/rpc/xmlrpc") 
def spaceKey = "Area" 
def pageTitel = "FileUpload" 
def fileName = "D:\\datamodel.pdf" 
def contentType = "application/pdf" 
def token = server.confluence2.login("UserName" , "Password") 
def page = server.confluence2.getPage(token, spaceKey, pageTitel) 
def file = new File (fileName) 
server.confluence2.addAttachment(token, page.id, [ fileName: file.name, contentType:contentType ], file.bytes) 
+1

你试过'server.confluence2.addAttachment(令牌,page.id ,[fileName:file.name,contentType:'application/pdf'],file.bytes)' –

+0

它的工作原理,非常感谢 – Laba42

+0

cool :-)添加它作为答案,我之前不确定:-) –

回答

1

望着文档,它看起来像你应该能够做到:

server.confluence2.addAttachment(token, 
            page.id, 
            [ fileName: file.name, 
            contentType:'application/pdf' ], 
            file.bytes) 
+0

哪些文件? – Laba42

+0

[here](https://developer.atlassian.com/display/CONFDEV/Confluence+XML-RPC+and+SOAP+APIs),[here](https://developer.atlassian.com/display/CONFDEV/)远程+ Confluence +数据+对象)和[这里](https://developer.atlassian.com/display/CONFDEV/Remote+Confluence+Methods)(特别是最后一个) –