ReadStream With Lock(NodeJS)

var fileStream = fs.createReadStream(filePath)
如何拥有共享/排他锁的 readStream
所以,该文件不能被删除更改

我不认为节点公开任何文件系统locking机制。

如果你打算使用文件系统来实现全系统的locking或者进行安全的进程间通信,那么你需要find另一种方式(比如套接字)。

如果它不是安全的关键,有一些方法可以让其他进程混淆你的文件更难(但不是不可能):

  • 使用不可猜测的文件名。 require('crypto').getRandomBytes('16').toString('hex')

  • 通过createReadStream上的选项创build文件时缩小权限。

  • 以特殊用户身份运行节点进程,因此文件将仅由该用户拥有。 可以将操作系统configuration为在适当的用户下运行节点,或者让节点以root身份运行,并通过process.setuid / setgid切换到另一个用户。