Node.js 如何以流形式下载图像,然后将其上载?
我的网站上有很多图片,我想把这些图片迁移到一个新的主机上。然后我制作了一个脚本,用X射线将其刮平。一旦我得到了url,我想下载文件而不将其写入硬盘,然后直接上传到我的新主机。 我正在使用Strapi和“Strapi提供商上传芥末”上传我的图片。我的代码总是收到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) {
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格式是错误的,我的第一个猜测是内容类型拼写错误。您是否尝试记录
响应。标题[“内容类型”]
?