Here is the code for better understanding,
const filePath = 'file.png';
const stats = fs.statSync(filePath);
const fileSizeInBytes = stats.size;
const fileStream = fs.createReadStream(filePath);
const formData = new FormData();
formData.append('file', fileStream, { knownLength: fileSizeInBytes });
const formDataHeaders = formData.getHeaders();
const response = await fetch(`${baseUrl}/ex/jira/${cloudId}/rest/api/2/issue/TEST-103/attachments`, {
method: 'POST',
body: formData,
headers: {
Authorization: accessToken,
Accept: 'application/json',
'X-Atlassian-Token': 'no-check',
...formDataHeaders,
},
});