Scriptrunner JIRA cloud - POST attachment - filename encoding issue

Lukáš Meitner
Contributor
September 6, 2022

Hi everyone,

I am facing an issue with bad filename encoding while posting attachment to an issue.

The code I use:

def attachmentContentData = get("/rest/api/3/attachment/content/10078") // get attachment binary data
.asBinary()
.body

InputStream stream = new ByteArrayInputStream(attachmentContentData.getBytes()) // create binary stream

def attachmentMetadata = get("/rest/api/3/attachment/10078") // get attachment metadata
.asObject(Map)
.body

String fileName = attachmentMetadata["filename"] // define filename as String

def sendAttachment = post("/rest/api/3/issue/XXX-77/attachments") // send attachment
.header("Accept", "application/json")
.header("X-Atlassian-Token", "no-check")
.field("file", stream, fileName)
.asJson()

println sendAttachment

Response:

Body: [{"self":"https://myjirasite.atlassian.net/rest/api/3/attachment/10197","id":"10197","filename":"?RA-obr?zek.png","author":...

When the attachment's filename contains non ASCII characters, the characters are changed into the question marks, eg. "?esk?_Republika.png" vs. "Česká_Republika.png".

The problem probably arises when json is created.

When I

println fileName

it correctly returns "Česká_Republika.png".

I tried as much options to fix the issue as I could, including various ways of string transcoding.

Thank you in advance for your help.

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events