1

我正在尝试使用 gm.js 调整节点中的文件大小,并使用它.stream()来创建调整后图像的可读流。现在我想使用 knox.js 上传它,.putStream()Content-Length它是必需的标头。是否可以识别可读流的大小以便我可以在Content-Length标题中使用它?

提前谢谢各位。

4

1 回答 1

1

如果您的文件不是太大,您可以在上传到 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 解决方案。

于 2014-08-07T16:35:47.667 回答