Javascript 读取流未执行触发/捕获错误
我正在尝试创建一个读流来使用Cloudinary的upload stream函数,我也在使用Resubable.js来分块初始文件,而创建读流工作得非常好(因为整个文件都写得非常好。)读流/Cloudinary upload函数似乎甚至没有启动,也没有无声地失败Javascript 读取流未执行触发/捕获错误,javascript,node.js,cloudinary,Javascript,Node.js,Cloudinary,我正在尝试创建一个读流来使用Cloudinary的upload stream函数,我也在使用Resubable.js来分块初始文件,而创建读流工作得非常好(因为整个文件都写得非常好。)读流/Cloudinary upload函数似乎甚至没有启动,也没有无声地失败 router.post("/upload", (req, res, next) => { console.log("the params are.. ", req.body); resumable.post(req, f
router.post("/upload", (req, res, next) => {
console.log("the params are.. ", req.body);
resumable.post(req, function(
status,
filename,
original_filename,
identifier
) {
if (status === "done") {
let timestamp = new Date().getTime().toString();
//stich the chunks
var s = fs.createWriteStream(timestamp + filename);
resumable.write(identifier, s);
var upload_stream = cloudinary.uploader.upload_stream(
{ tags: "basic_sample" },
function(err, image) {
console.log();
console.log("** Stream Upload");
if (err) {
console.warn(err);
}
console.log("* Same image, uploaded via stream");
console.log("* " + image.public_id);
console.log("* " + image.url);
waitForAllUploads(timestamp + filename, err, image);
}
);
fs.createReadStream(timestamp + filename)
.pipe(upload_stream)
.on("error", err => {
console.log(err);
});
s.on("finish", function() {
// Stream upload
console.log("ive finished...");
// delete chunks
setTimeout(() => {
resumable.clean(identifier);
}, 1000);
});
}
res.send(status);
});
});
以下是我正在使用的资源:
fs.createReadStream(时间戳+文件名)接受文件路径,但看起来您也在传递时间戳。此外,未定义waitForAllUploads。您可以使用Node和Cloudinary来测试以下代码
var upload_stream= cloudinary.uploader.upload_stream({tags: 'basic_sample'},function(err,image) {
console.log("** Stream Upload");
if (err){ console.warn(err);}
console.log("* "+image.url)
});
var file_reader = fs.createReadStream('<file path>').pipe(upload_stream);
var upload_stream=cloudinary.uploader.upload_stream({tags:'basic_sample'},函数(err,image){
console.log(“**流上传”);
if(err){console.warn(err);}
console.log(“*”+image.url)
});
var file_reader=fs.createReadStream(“”).pipe(上传_流);
这实际上很好用!但是,我无法访问回调中的控制台日志。。。我从来没有看到过console.log(“*”+image.url),即使我已经登录到我的Cloudinary帐户,并且看到了完美上传的图像