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);
  });
};

ファイルが非常に大きい場合は、mscdex のソリューションをknox-mpuモジュールで使用することをお勧めします。

于 2014-08-07T16:35:47.667 に答える