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
切换到另一个用户。