我正在想出一种使用 request 和 knox 将 URL 上的文件上传到 S3 的方法。目前,我的代码如下所示:
request(item.productImage, function(err, res, body) {
if (!err && res.statusCode == 200) {
fs.writeFile('/tmp/' + filename, body, 'base64', function(err, data){
if (err) {
return console.log(err);
}
client.putFile('/tmp/' + filename, '/item/' + item._id + '/' + filename, function(err, res) {
if (err) {
return console.log(err);
}
});
});
}
});
这不起作用,因为它只下载了4kb文件的约652字节就停止了。奇怪的是,如果我不提供fs.writeFile()的回调函数,它会完整地下载整个4kb文件到本地。
最好的解决方案是什么?