2016-03-30 13 views
2

Bir iOS/Android uygulamasından bir görüntü yükleme isteğini işlemeye çalışıyorum. İstekte, görüntünün bir tamponunu alıyorum ve yeniden yüklemek için görüntüyü indirmeye gerek kalmadan Rackspace dosyalarına yüklemek istiyorum. Dosyayı dosya sistemine yazabilirim ve bundan okuyabilirdim, ancak bunu buluta aktarabilmek için tampon ile okunabilir bir akış oluşturmanın mümkün olup olmadığını bilmek istiyorum.Resimdeki arabellek görseli gönder

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

Şu anda bunu yapmaya çalışıyorum ama not implemented hataları almaya devam böyle mi.

cevap

0

Bunu aslında bir PassThrough akışı kullanarak gerçekleştirebiliyordum.

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