Я пытаюсь сохранить двоичный объект в redis, а затем возвращать его в качестве изображения.
Вот код, который я использую для сохранения данных:
var buff=new Buffer(data.data,'base64');
client.set(key,new Buffer(data.data,'base64'));
Вот код для выгрузки данных:
client.get(key,function(err,reply){
var data = reply;
response.writeHead(200, {"Content-Type": "image/png"});
response.end(data,'binary');
});
Первые несколько байтов данных кажутся поврежденными. Магическое число неверно.
Сделал некоторые эксперименты:
когда я делаю следующее:
var buff=new Buffer(data.data,'base64');
console.log(buff.toString('binary'));
Я получаю это:
0000000: c289 504e 470d 0a1a 0a00 0000 0d49 4844
когда я это делаю
var buff=new Buffer(data.data,'base64');
console.log(buff);
Я получаю следующее:
Буфер 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00
Я не уверен, где c2 исходит из