我想将多部分/表单数据中的文件上传请求流式传输到另一台服务器,并同时更改某些字段名称。
我不想将文件临时存储在磁盘上,也不想完全将文件存储在内存中。
我曾尝试使用multer,busboy和multiparty。我想我通过使用自定义的Transform流更加接近了,但是它还无法正常工作。
const express = require('express');
const request = require('request');
const { Transform } = require('stream');
const router = express.Router();
class TransformStream extends Transform {
_transform(chunk, encoding, callback) {
// here I tried to manipulate the chunk
this.push(chunk);
callback();
}
_flush(callback) {
callback();
}
}
router.post('/', function pipeFile(req, res) {
const transformStream = new TransformStream();
req.pipe(transformStream).pipe(request.post('http://somewhere.com'));
res.sendStatus(204);
});
我试图操纵_transform
中的块而没有成功(EPIPE)。听起来似乎不客气,他们有更好的解决方案吗?
这里是使用replacestream
和replacestream
的解决方案。
content-disposition