'Slack API upload string as file

I have a sting variable of a csv. I want to upload it to a slack channel as a .csv file, not as text.

async function run() {
    const csvData = 'foo,bar,baz';    
    const url = 'https://slack.com/api/files.upload';
    const res = await axios.post(url, {
        channel: '#csvchannel',
        filename: 'CSVTest.csv',
        content: csvData
    }, { headers: { authorization: `Bearer ${slackToken}` } });

    console.log('Done', res.data);
}

This code returns: error: 'no_file_data', Changing content to file gives the same response.

What do I have to do to convert the csv sting into a file that can be uploaded? I can't use fs to write out the file.

I have tried to use fs.createReadStream(csvData) but that needs a file, not a string.

Slack API documentation: https://api.slack.com/methods/files.upload



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source