使用 express 和 node 添加文件权限

Add file permissions with express and node

我有一个快捷方式 API 可以将文件上传到具有 root 所有者的服务器文件系统。有没有办法在我上传的时候给文件添加所有者和权限,例如:所有者:我,访问:644.

我的路线是这样的

router.post('/',

imageUpload.single('file'),

function (req, res) {
    res.set('location', encodeURI(urlJoin(UPLOAD_URL, req.file.filename)))
    res.status(req.file.isCreation ? 201 : 204).send()
}
)

我用multer来存储文件

const imageUpload = multer({
storage,
})

更改文件所有权的唯一方法是,如果您 运行 您的脚本是根用户(或者如果您编写 SUID 根帮助程序来执行此操作)。如果您谈论的是 OS 访问权限,那当然是这样。您的后端可以根据 cookie、seesion id、某些 header 中的令牌或请求中的任何其他内容来提供文件或不提供文件。但是如果没有 root 权限,您将无法更改文件系统中文件的所有权。考虑一下这是否是您真正需要的东西。

如果您的脚本 运行 像您在评论中写的那样是根用户,那么您可以使用 fs.chown 更改所有者并使用 fs.chmod 更改权限。

参见: