Node.js 如何以流形式下载图像,然后将其上载?

Node.js 如何以流形式下载图像,然后将其上载?,node.js,request,strapi,Node.js,Request,Strapi,我的网站上有很多图片,我想把这些图片迁移到一个新的主机上。然后我制作了一个脚本,用X射线将其刮平。一旦我得到了url,我想下载文件而不将其写入硬盘,然后直接上传到我的新主机。 我正在使用Strapi和“Strapi提供商上传芥末”上传我的图片。我的代码总是收到400个错误请求 request.get(url, function (error, response, body) { if (!error && response.statusCode == 200) {

我的网站上有很多图片,我想把这些图片迁移到一个新的主机上。然后我制作了一个脚本,用X射线将其刮平。一旦我得到了url,我想下载文件而不将其写入硬盘,然后直接上传到我的新主机。 我正在使用Strapi和“Strapi提供商上传芥末”上传我的图片。我的代码总是收到
400个错误请求

request.get(url, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        data = "data:" + response.headers["content-type"] + ";base64," + new Buffer(body).toString('base64');

        var form = {
            "refId": body.id,
            "ref": "comic",
            "field": "cover",
            "files": data,
            "path": "/"
        }

        request({
            uri: 'http://localhost:1337/upload',
            method: 'POST',
            headers: {
                'Content-Type': 'multipart/form-data'
            },
            formData: form
        }, function optionalCallback(err, httpResponse, body) {

            if (err) {
                return console.error('upload failed:', err);
            }
            // console.log(httpResponse);
            console.log('Upload successful!  Server responded with:', httpResponse.statusMessage);
        });
    }
});

第一步是检查错误消息

确保模型漫画具有上载字段

响应.标题[“内容类型”]

应该是:

响应.标题[“内容类型”]

表单数据应为FormData对象:

你有哪个版本的Strapi

你查过最新的文件了吗

此外,最好与一些最新的提供商一起尝试,例如


我可以使用fs.createReadStream上传图像。我想要的是我有一个图像url,我下载它作为缓冲区,然后将缓冲区上传到strapi。文档中说它接受缓冲区或流。但使用缓冲区我仍然收到错误的请求。然后可能base64格式是错误的,我的第一个猜测是内容类型拼写错误。您是否尝试记录
响应。标题[“内容类型”]