我正在尝试使用 gm.js 调整节点中的文件大小,并使用它.stream()
来创建调整后图像的可读流。现在我想使用 knox.js 上传它,.putStream()
但Content-Length
它是必需的标头。是否可以识别可读流的大小以便我可以在Content-Length
标题中使用它?
提前谢谢各位。
我正在尝试使用 gm.js 调整节点中的文件大小,并使用它.stream()
来创建调整后图像的可读流。现在我想使用 knox.js 上传它,.putStream()
但Content-Length
它是必需的标头。是否可以识别可读流的大小以便我可以在Content-Length
标题中使用它?
提前谢谢各位。
如果您的文件不是太大,您可以在上传到 S3 之前使用raw-body模块缓冲您的流:
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 解决方案。