我们的系统在与Dropbox交互时需要使用内部安全检查,因此我们不能将客户端SDK用于Dropbox。
我们宁愿上传到我们自己的端点,应用安全检查,然后将传入的请求流式传输到dropbox。
由于有一个较旧的NodeJS Dropbox SDK支持管道,我在这里做的很简短,但新的SDK没有。 旧SDK: https://www.npmjs.com/package/dropbox-node
我们希望接收传入的上传请求,并在它进入时将其转发到Dropbox。(因此,如果我们首先将整个内容上传到我们的服务器然后上传到Dropbox,则阻止上传时间延长两倍)
有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
我的Dropbox NPM模块(dropbox-v2-api)支持流式传输。它基于HTTP API,因此您可以利用流。例?我这样看:
const contentStream = fs.createReadStream('file.txt');
const securityChecks = ... //your security checks
const uploadStream = dropbox({
resource: 'files/upload',
parameters: { path: '/target/file/path' }
}, (err, result, response) => {
//upload finished
});
contentStream
.pipe(securityChecks)
.pipe(uploadStream);
全流支持示例here。