Busboy からファイル ストリームを取得しています。次に、バイト数を数え、最初の行を取得して、Azure ストレージに送信する必要があります。約 25MB までのファイルで機能しますが、それ以降はすべてのバイトがカウントされません。待たせる方法がわかりません。最初の行を取得する間、元のデータを保持するためだけにパススルー ストリームを使用しています。
busboy
.on('file', function(fieldname, file, filename, encoding, mimetype) {
file
.on('data', function(data) {
bytes = bytes + data.length;
})
.on('end', function() {
console.log("end");
})
.pipe(passthrough)
.pipe(firstLine)
.pipe(es.wait(function (err, body) {
blobService.createBlockBlobFromStream(containter, name, passthrough, bytes, function (error, result) {
if(error) {
return sendResponse(error.toString(), res, null);
}
sendResponse(null, res, "done");
});
}));
})
.on('finish', function() {
console.log("busboy done");
});