如何在 node-red. 中下载 tar 文件?

How to download the tar file in node-red.?

我正在尝试下载 node-red 中的 tar 文件。

以下是我的 JavaScript 下载文件的代码。

downloadTar(sendObj).then(res => {
        var bytes = new Uint8Array(byte); // pass your byte response to this constructor
        var blob = new Blob([bytes], {type: "application/tar"});
        var link = document.createElement('a');
        link.href = window.URL.createObjectURL(blob);
        var fileName = 'genome.tar';
        link.download = fileName;
        link.click();
});


function downloadTar(data) {
    return new Promise((resolve, reject) => {
        $.ajax({
            url: nodeRedDownloadTar,
            type: 'POST',
            data: data,
            success: function (result) {
                resolve(result);
            }
        });
    });
}

以下是我的 Node-Red 流程,我正在读取 a single Buffer Object 中的文件并将其发送到 http 响应

下面是我从后端得到的响应。

问题是 tar 文件没有下载。我不确定我哪里出了问题。

以下流程工作正常,我在 http-response 节点中使用 headers 选项将 content-type 设置为 appplication/x-tar

[
    {
        "id": "6e993a09.f44244",
        "type": "file in",
        "z": "1c834717.22be01",
        "name": "",
        "filename": "/home/pi/test.tar",
        "format": "",
        "chunk": false,
        "sendError": false,
        "encoding": "none",
        "x": 600,
        "y": 580,
        "wires": [
            [
                "6e7d5f6f.c9477"
            ]
        ]
    },
    {
        "id": "df49df3b.d325b",
        "type": "http in",
        "z": "1c834717.22be01",
        "name": "",
        "url": "/tar",
        "method": "post",
        "upload": false,
        "swaggerDoc": "",
        "x": 380,
        "y": 580,
        "wires": [
            [
                "6e993a09.f44244"
            ]
        ]
    },
    {
        "id": "6e7d5f6f.c9477",
        "type": "http response",
        "z": "1c834717.22be01",
        "name": "",
        "statusCode": "",
        "headers": {
            "content-type": "application/x-tar"
        },
        "x": 800,
        "y": 580,
        "wires": []
    }
]