I need to download all attachments for specified issue in jira.
This code downloads file, but it's corrupted.
Can anyone help, how to correctly work with attachments?
import com.atlassian.jira.rest.client.api.JiraRestClient
import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory
import java.io.FileOutputStream
import java.net.URI
import java.nio.channels.Channels
import java.io.BufferedInputStream
import java.io.IOException
import java.net.URL
@Throws(IOException::class)
private fun downloadUsingStream(urlStr: String, file: String) {
val url = URL(urlStr)
val bis = BufferedInputStream(url.openStream())
val fis = FileOutputStream(file)
val buffer = ByteArray(1024)
var count = 0
while (bis.read(buffer, 0, 1024) != -1) {
fis.write(buffer, 0, buffer.size)
}
fis.close()
bis.close()
}
fun main(args: Array<String>) {
val jiraURI = URI("http://jira/")
val factory = AsynchronousJiraRestClientFactory()
val client: JiraRestClient = factory.createWithBasicHttpAuthentication(jiraURI,"login","password")
val issueClient = client.issueClient
client.use {
issueClient.getIssue("attachment").claim().attachments.forEach {attachment->
val website = attachment.contentUri.toURL()
downloadUsingStream(website.toString(),attachment.filename)
}
}
}