I’m looking for an example on how to generate the request body when uploading an attachment to Azure DevOps Server. Looking at the documentation here, it notes the content for the body should be “[BINARY FILE CONTENT]”. The content of the body is coming from a URL (https://someURL/images/abc.png for example). How do I get from fetch(url) -> binary content to put in the POST request to create the attachment?
Advertisement
Answer
Found a solution that works. For reference here’s the code:
//Get the stream from the content URL getStreamData(screenshot.src).then(function (streamData) { //Get the blob data from the stream streamData.blob().then(function (blob) { //upload the attachment uploadAttachment(blob, fileName).then(function (res) { console.log("Attachment uploaded successfully: ", res); //Update work item with attachment link linkAttachmentToWorkitem(res.url, <workItemID>); }); }); });
The key to all of this, for me anyway, was adding
processData: false
to the ajax settings, for the POST request, in the uploadAttachment function.