2016-05-06 39 views
2

我看到了很多关于如何通过Node和Express处理分块文件上传的文章;例如:是否有任何Node包用于处理使用Express的分块上载?

这似乎是很多工作。当然有可用的节点包,这使得处理分块上传变得很简单?我看过NPM,但没有发现任何类似的东西。我想上传到我自己的服务器,而不是像S3一样的远程文件存储。

回答

1

我认为你可以在快件处理块上传,而无需任何模块

app.post('/anyUrl', function(req, res){ 
    var size = 0; 

    req.on('data', function (data) { 
     size += data.length; 
     console.log('Got chunk: ' + data.length + ' total: ' + size); 
    }); 

    req.on('end', function() { 
     console.log("total size = " + size); 
     res.send("response"); 
    }); 

    req.on('error', function(e) { 
     console.log("ERROR ERROR: " + e.message); 
    }); 


}); 

你可以尝试obove代码进行POST请求

变种FS =要求( 'FS'); var request = require('request'); fs.createReadStream('path/to/file')。pipe(request.post('http://localhost:3000/anyUrl'));

+0

虽然这确实提供了对每个分块上载数据的访问权限,但它没有提供处理边界的方法。 –

+0

由于Chad的评论而被低估,这并没有解决HTTP中实际的分块协议,你应该看看HTTP Headers,让你知道哪些字节正在发送,而不是假定它们按顺序到达。请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests –

相关问题