将WebM文件存储在Redis(NodeJS)中

我正在寻找一个将WebM文件存储到Redis的解决scheme。

我们来解释一下情况:

  • NodeJS服务器从客户端接收WebM文件,并将其保存到服务器文件系统中。
  • 然后它必须保存在redis的这个文件,因为我不想pipe理redis和文件系统。 这样我可以用redis命令删除video。

我想用fs.readFile()读取文件,然后将其保存到一个缓冲区中,但我不知道如何使用编码格式,我不知道如何引用这个过程来将WebMvideo回送给客户端发出请求时。

这是继续进行的好方法吗? 任何build议?

PS:我使用强大的上传文件。


编辑:我find了一种方法来进行,但theres另一个问题:

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? 也许节点和Redis使用不同的编码?

find解决scheme 当您创build客户端对象时,问题就变成了。

通常这是做的

  var client = redis.createClient(); 

return_buffers参数将被设置为false。

通过这种方式

 var client = redis.createClient(6379, '127.0.0.1', { return_buffers: true, auth_pass: null }); 

一切正常! ;)

这是他们帮助我的问题页面

我不太了解NodeJS和WebM文件。

Redis存储C字符types的8位string,所以它应该是二进制友好的。 检查js代码和configuration,以确保您的js redis客户端发送/接收数据为bytearray而不是UTF-8string,可能是JS中的数据转换不正确。