带锁的 ReadStream (NodeJS)

ReadStream With Lock (NodeJS)

var fileStream = fs.createReadStream(filePath)
如何使用 readStreamshared/exclusive lock
所以,该文件不能删除改变

我认为节点没有公开任何文件系统锁定机制。

如果您打算将文件系统用于系统范围的锁或安全的进程间通信,您将需要找到另一种方式(例如套接字)。

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

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

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

  • 运行 节点作为特殊用户处理,因此文件将仅由该用户拥有。在适当的用户下将 OS 节点配置为 运行 节点,或者将节点 运行 设置为 root 并通过 process.setuid/setgid.[=14= 切换到另一个用户]