私の目標は、アップロードされたファイルを受け入れ、Wistia Upload APIを使用してWistiaにストリーミングすることです。HTTP リクエストにフィールドを追加できるようにする必要がありますが、ファイルがディスクにアクセスすることは望ましくありません。Node、Express、Request、およびBusboyを使用しています。
以下のコードには 2 つのconsole.log
ステートメントがあります。最初の戻り値[Error: not implemented]
と 2 番目の戻り値[Error: form-data: not implemented]
。Node でのストリーミングは初めてなので、おそらく根本的に間違ったことをしているのでしょう。どんな助けでも大歓迎です。
app.use("/upload", function(req, res, next) {
var writeStream = new stream.Writable();
writeStream.on("error", function(error) {
console.log(error);
});
var busboy = new Busboy({headers: req.headers});
busboy.on("file", function(fieldname, file, filename, encoding, mimetype) {
file.on("data", function(data) {
writeStream.write(data);
});
file.on("end", function() {
request.post({
url: "https://upload.wistia.com",
formData: {
api_password: "abc123",
file: new stream.Readable(writeStream)
}
}, function(error, response, body) {
console.log(error);
});
});
});
req.pipe(busboy);
});