Cheguei atrasado, mas já escrevi uma API de terceiros para o Discourse em nodejs antes:
Com esta biblioteca você pode facilmente criar uploads. Basta fazer o seguinte:
const { DiscourseApi } = require("node-discourse-api");
const api = new DiscourseApi("https://discourse.example.com");
api.options.api_username = "API_USERNAME";
api.options.api_key = "API_KEY";
api.createUpload(file_path_or_buffer, { filename: "filename" })
(Observação: esta biblioteca não está completa)