2017-09-05 102 views
1

我正在接收http POST響應正常200,但我在JIRA問題上看不到任何文件。從我的研究中我可以理解,這可能是我用請求發送的formData的一些問題。下面是我的代碼:Nodejs向JIRA發送附件

var newBuffer = new Buffer(req.Payload, 'base64'); 
var myReadableStreamBuffer = new streamBuffers.ReadableStreamBuffer({ 
frequency: 10, // in milliseconds. 
chunkSize: 2048 // in bytes. 
}); 

// With a buffer 
myReadableStreamBuffer.put(newBuffer); 
var formData = { 
'file': { 
'content': myReadableStreamBuffer, 
'filename': req.FileName, 
'mimeType': req.MimeType //mimeType from JSON 
} 
}; 

var options = { 
url: 'https://comapny.atlassian.net/rest/api/2/issue/' + req.ReferenceId + '/attachments', 
method: "POST", 
json: true, 
headers: { 
'ContentType': 'multipart/form-data', 
'Authorization': 'Basic ' + new Buffer(config.jira.jiraUser.userName + ':' + config.jira.jiraUser.password).toString('base64'), 
'X-Atlassian-Token': 'nocheck' 
}, 
formData: JSON.stringify(formData) 
}; 

request(options, 
function (error, response, body) { 
if (error) { 
errorlog.error(`Error Message : PostAttachmentToCSMS : ${error}`); 
return response.statusCode; 
} 
else { 
successlog.info(`Attachment posted for issue Key: ${req.ReferenceId} ${response.statusMessage}`); 
return response.statusCode; 
} 
}); 

我可以寫從myReadableStreamBuffer文件,這樣似乎確定。請幫助我確定問題。非常感謝!

回答

0

花費一些關於它的更多的時間後,我已經找到了正確的格式爲FORMDATA: var newBuffer = new Buffer(req.Payload, 'base64'); var formData = { file: { value: newBuffer, options: { filename: req.FileName, contentType: req.MimeType } } };