XML-RPCで添付ファイルを追加する
API仕様はあるんですが、XML-PRCを使ったことがなくてイメージがつかめなかったです。添付ファイルの追加のAPIはこんなかんじです。
Attachment addAttachment(String token, long contentId, Attachment attachment, byte[] attachmentData)
Groovyでのサンプルコードを載せておきます。attachmentはマップで必須のプロパティのみ設定してます。
import groovy.net.xmlrpc.*; // 接続ID/パスワード username = 'test' password = 'test' // ConfluenceのURL baseUrl = 'http://127.0.0.1/confluence' c = new XMLRPCServerProxy(baseUrl + "/rpc/xmlrpc") c.confluence1.login(username, password) {token -> // ページを取得(スペース:GUIDE, ページタイトル:Home) def page = c.confluence1.getPage(token, 'GUIDE', 'Home') // 添付するファイルをbyte[]に読み込む def bout = new ByteArrayOutputStream() def fin = new FileInputStream("D:\\test.pdf"); bout << fin // 添付ファイル def attachment = [ pageId: page.id, fileName: 'test.pdf', contentType: 'application/pdf', comment: '添付ファイルのテスト' ] // ファイルをアップロードする println c.confluence1.addAttachment(token, page.id, attachment, bout.toByteArray()) fin.close() bout.close() }
事前にXMLRPCライブラリを追加しておく必要があります。
Groovy - XMLRPC