2016-12-15 5 views
0

페이지 (제목, 본문) 및 파일 에셋 (pdf 및 이미지)을 가져 오기위한 합류를위한 플러그인을 만들고 있습니다.Confluence 플러그인 외부 첨부 파일 가져 오기

저는 PageManager를 사용하여 페이지를 저장하고 페이지를 저장/생성하는 것은 꽤 간단하지만 첨부 파일을 추가하는 방법을 찾을 수있는 온라인 정보가 거의 없기 때문에 어떻게하는지 이해하기가 어렵습니다. 그것을하기 위해.

페이지 객체에 대한 첨부 파일을 inputStream 또는 byte[]으로 설정하는 방법을 아는 사람이 있습니까? page.setAttachments()은 Attachment 개체의 목록을 사용하지만 첨부 파일 개체를 만들려고해도 inputStream 또는 byte 배열을 사용하지 않습니다.

PageManager pageManager = ComponentLocator.getComponent(PageManager) as PageManager 
Page page = pageManager.getPage(8290525l) 
URL url = new URL("https://i.ytimg.com/vi/tntOCGkgt98/maxresdefault.jpg"); 
InputStream bufferIn = new BufferedInputStream(url.openStream()); 

어떤 도움이

감사

을 감상 할 수있다

편집 : 당신처럼

PageManager pageManager = ComponentLocator.getComponent(PageManager) as PageManager 
ArrayList<AttachmentResource> attachResources = new ArrayList<AttachmentResource>() 

def page = pageManager.getPage(8290525l) 
URL url = new URL("https://i.ytimg.com/vi/tntOCGkgt98/maxresdefault.jpg"); 
InputStream bufferIn = new BufferedInputStream(url.openStream()); 

DefaultSaveContext context = new DefaultSaveContext() 
context.setUpdateLastModifier(true) 


AttachmentManager attachmentManager = ComponentLocator.getComponent(AttachmentManager) as AttachmentManager 
Attachment attachment = new Attachment("2454.png", "image/png", bufferIn.getBytes().length, "", false) 
attachmentManager.saveAttachment(attachment, null, bufferIn) 

page.addAttachment(attachment) 
pageManager.saveContentEntity(page, context) 
+0

사용중인 API 버전은 무엇입니까? – rmlan

+0

Confluence 5.10.4 – Alex

+0

하하, 그렇다면 그들의 [Api Docs] (https://docs.atlassian.com/confluence/5.10.4/com/atlassian/confluence/pages/AttachmentManager.html#saveAttachment-com.atlassian .confluence.pages.Attachment-com.atlassian.confluence.pages.Attachment-java.io.InputStream-)가 거짓말입니다. – rmlan

답변

0

사용 FileUploadManager의 데이터를 업로드하고 첨부 파일을 추가 할 (그것은 본다 실제로 Groovy를 사용하므로, 역시 사용 가능합니다) :

PageManager pageManager = ComponentLocator.getComponent(PageManager) as PageManager 
Page page = pageManager.getPage(8290525l) 

URL url = new URL("https://i.ytimg.com/vi/tntOCGkgt98/maxresdefault.jpg"); 
InputStream bufferIn = new BufferedInputStream(url.openStream()); 

FileUploadManager uploadManager = ComponentLocator.getComponent(FileUploadManager) as FileUploadManager 
AttachmentResource attachment = new InputStreamAttachmentResource (bufferIn, "2454.png", "image/png", bufferIn.getBytes().length) 
uploadManager.storeResource(attachment, page) 
+0

나는 그것을 지금 시도 할 것이다! – Alex

+0

그리고 네가 맞다. groovy를 사용하고있다. (좋은 장소는 베테랑이다.) – Alex

+0

나는 다음과 같은 오류 메시지를 받는다. – Alex

관련 문제