2

iOS/Android アプリからの画像アップロード リクエストを処理しようとしています。リクエストでは、画像のバッファを取得しており、画像をダウンロードして再アップロードすることなく、それを Rackspace ファイルにアップロードしたいと考えています。ファイルをファイルシステムに書き込んでそこから読み取ることができましたが、それをクラウドにパイプするためにバッファーを使用して読み取り可能なストリームを作成できるかどうかを知りたいです。

        var options = {
            container: _this3._container,
            remote: filename,
            contentType: contentType
        }
        var readStream = new Readable(data);
        readStream._read();
        readStream.on('data', function() {
            console.log("Has data!");
        });

    function upload() {
        return new Promise(function (resolve, reject) {
            var writeStream = _this3._RackClient.upload(options);

            writeStream.on('success', function() {
                resolve();
            });
            writeStream.on('error', function(err) {
                if (err !== null) {
                    return reject(err);
                }
            });
            readStream.pipe(writeStream);
        });
    }
    return upload();

私が現在それをやろうとしている方法ですが、引き続きnot implementedエラーが発生します。

4

1 に答える 1

0

私は実際にPassThroughストリームを使用してこれを達成することができました。

var options = {
    container: _this3._container,
    remote: filename,
    contentType: contentType
};
function upload() {
    return new Promise(function (resolve, reject) {
        var writeStream = _this3._RackClient.upload(options);
        var bufferStream = new stream.PassThrough();
        bufferStream.end(new Buffer(data));
        writeStream.on('success', function(file) {
            resolve(file);
        });
        writeStream.on('error', function(err) {
            if (err !== null) {
                console.log(err);
                return reject(err);
            }
        });
        bufferStream.pipe(writeStream);
    });
}
return upload();
于 2016-03-30T22:10:41.220 に答える