我正在尝试使用gm.js调整节点中的文件大小,并使用.stream()
创建可调整大小的图像的可读流。现在我想使用knox.js .putStream()
上传它,但Content-Length
是必需的标题。是否可以识别可读流的大小,以便我可以在Content-Length
标题中使用它?
先谢谢你们。
答案 0 :(得分:1)
如果您的文件不是太大,您可以使用raw-body模块缓冲您的流,然后再将其上传到S3:
var rawBody = require('raw-body');
var knox = require('knox');
function putStream(stream, filepath, headers, next) {
rawBody(stream, function(err, buffer) {
if (err) return next(err);
headers['Content-Length'] = buffer.length;
knox.putBuffer(buffer, filepath, headers, next);
});
};
如果您的文件非常大,最好使用带有knox-mpu模块的mscdex解决方案。