Redmine Rest API:如何上传带有附件的Wiki页面

时间:2019-06-27 17:08:10

标签: javascript file-upload axios redmine redmine-api

我编写了一个脚本,该脚本接收文档并将其转换为字符串,然后将其发送给wiki页面作为redmine。这个很棒。

现在,我正在尝试将文件附加到该文件,并且正在创建Wiki页面并以预期的文本上传该Wiki页面,但是未发送该附件。

奇怪的是,我没有收到错误消息,说它没有被发送。实际上,附件文件的发布请求得到201响应,这很好,但是我在Wiki页面上看不到文件附件。

发布附件时,我还会收到令牌,因此我可以用它对Wiki文本和附件进行PUT请求,这样您就可以了解为什么我如此困惑。

我将在文件中提供我的代码。任何帮助将不胜感激。


//a path to a txt file in my computer
var filePath = '../attached.txt'

fs.readFile(filePath,"utf8", (err, data) => {
    if (err) { throw err; }
    creatingWikiPage_AttachedFile(data)
    console.log(data)
})

function creatingWikiPage_AttachedFile(file) {

    axios({
        method: 'post',
        url: '<redmine_url>/uploads.json',
        headers: {
            'Content-Type': 'application/octet-stream'
        },
        params: { 'key': '<api_key>' },
        data: file
    })
        .then(function (response) {
            console.log(" POST attached Files--->  ");
            console.log(response)

            axios({
                method: 'put',
                url: '<redmine_url>/projects/Testing/wiki/Wiki.json',
                headers: { 'Content-Type': 'application/json' },
                params: { 'key': '<api_key>' },
                data: {
                    "wiki_page": {
                        "text": "This is a wiki page with images and other files.",
                        "uploads": [
                            { "token": response.data.upload.token, "filename": "attached.txt", "content-type": "text/plain" }
                        ]
                    }
                }
            })
                .then(response => {
                    console.log("Put Document-------->>>>")
                    console.log(response);
                })
                .catch(error => {
                    console.log(error.response)
                })
        })
        .catch(function (error) {
            console.log(error.message)
        })
}

我希望文件可以附加到Wiki页面,但是仅创建了Wiki页面,而附加文件不存在。

0 个答案:

没有答案