var fileStream = fs.createReadStream(filePath)
如何 readStream 与共享/独占锁
因此,该文件不能删除或已更改
答案 0 :(得分:1)
我认为node不会暴露任何文件系统锁定机制。
如果您要将文件系统用于系统范围的锁定或安全的进程间通信,则需要找到其他方法(例如套接字)。
如果它不是安全关键,那么有一些方法可以让其他进程更难(但并非不可能)来处理文件:
使用无法使用的文件名。 require('crypto').getRandomBytes('16').toString('hex')
通过createReadStream
上的选项创建文件时的权限范围较窄。
以特殊用户身份运行节点进程,因此文件仅由该用户拥有。将OS配置为在适当的用户下运行节点,或者让节点以root身份运行,并通过process.setuid
/ setgid
切换到另一个用户。