使用express和node添加文件权限

时间:2017-02-09 14:00:55

标签: node.js express multer

我有一个快速API,用于将文件上传到具有root所有者的服务器文件系统。有没有办法在我上传文件时添加文件的所有者和权限,例如:owner:me,access: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,
})

1 个答案:

答案 0 :(得分:1)

您可以更改文件所有权的唯一方法是以root身份运行脚本(或者如果您编写SUID根帮助程序来执行此操作)。当然,如果您正在谈论操作系统访问权限。您的后端可以根据cookie,seeion id,某些标头中的标记或请求中的任何其他内容来提供文件。但是,如果没有root权限,您将无法更改文件系统中文件的所有权。考虑一下你是否真的需要它。

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

请参阅: