Загрузить изображение из буфера в запросе
Я пытаюсь обработать запрос загрузки изображения из приложения iOS/Android. В запросе я получаю буфер изображения и хочу загрузить его в файлы Rackspace без необходимости загружать изображение для его повторной загрузки. Я мог бы записать файл в файловую систему и прочитать из него, но я хочу знать, возможно ли создать readableStream с буфером, чтобы передать это в облако.
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
ошибки.
1 ответ
Я действительно смог достичь этого с помощью 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();