我正在搜索将WebM文件存储到Redis中的解决方案。
让我们解释一下情况:
我想用fs.readFile()读取文件,然后将其保存到Buffer中,但我不知道要使用的编码格式,我不知道如何引用这个过程来回馈WebM视频发送给客户提出请求。
这是一个很好的方法吗?有什么建议吗?
PS:我使用强大的上传文件。
编辑:我找到了继续进行的方法,但还有另一个问题:
var file = fs.readFileSync("./video.webm");
client.set("video1", file1, function(){
client.get("video1", function(err, data) {
var buffer = new Buffer(data, 'binary');
// file ≠ buffer
});
});
这是编码问题吗?像unicode / UTF8 / ASCII? 也许node和redis使用不同的编码?
答案 0 :(得分:1)
找到解决方案! 当您创建客户端对象时,问题就出现了。
通常这就是做什么
var client = redis.createClient();
并且return_buffers
param将被设置为false。
以这种方式
var client = redis.createClient(6379, '127.0.0.1', {
return_buffers: true,
auth_pass: null
});
一切都好了! ;)
这是the issue page他们帮助我
答案 1 :(得分:0)
我对NodeJS和WebM文件了解不多。
Redis在8位字符串上存储C char类型,因此它应该是二进制友好的。检查js代码和配置,以确保您的js redis客户端以bytearray而不是UTF-8字符串发送/接收数据,可能是JS中的数据转换不良。