带锁的 ReadStream (NodeJS)
ReadStream With Lock (NodeJS)
var fileStream = fs.createReadStream(filePath)
如何使用 readStream 和 shared/exclusive lock
所以,该文件不能删除或改变
我认为节点没有公开任何文件系统锁定机制。
如果您打算将文件系统用于系统范围的锁或安全的进程间通信,您将需要找到另一种方式(例如套接字)。
如果它不是安全关键,有一些方法可以让其他进程更难(但并非不可能)弄乱您的文件:
使用难以猜测的文件名。 require('crypto').getRandomBytes('16').toString('hex')
通过 createReadStream
上的选项创建文件时缩小权限。
运行 节点作为特殊用户处理,因此文件将仅由该用户拥有。在适当的用户下将 OS 节点配置为 运行 节点,或者将节点 运行 设置为 root 并通过 process.setuid
/setgid
.[=14= 切换到另一个用户]
var fileStream = fs.createReadStream(filePath)
如何使用 readStream 和 shared/exclusive lock
所以,该文件不能删除或改变
我认为节点没有公开任何文件系统锁定机制。
如果您打算将文件系统用于系统范围的锁或安全的进程间通信,您将需要找到另一种方式(例如套接字)。
如果它不是安全关键,有一些方法可以让其他进程更难(但并非不可能)弄乱您的文件:
使用难以猜测的文件名。
require('crypto').getRandomBytes('16').toString('hex')
通过
createReadStream
上的选项创建文件时缩小权限。运行 节点作为特殊用户处理,因此文件将仅由该用户拥有。在适当的用户下将 OS 节点配置为 运行 节点,或者将节点 运行 设置为 root 并通过
process.setuid
/setgid
.[=14= 切换到另一个用户]