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