我有一个快速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,
})
答案 0 :(得分:1)
您可以更改文件所有权的唯一方法是以root身份运行脚本(或者如果您编写SUID根帮助程序来执行此操作)。当然,如果您正在谈论操作系统访问权限。您的后端可以根据cookie,seeion id,某些标头中的标记或请求中的任何其他内容来提供文件。但是,如果没有root权限,您将无法更改文件系统中文件的所有权。考虑一下你是否真的需要它。
如果您的脚本以您在评论中写的为根运行,那么您可以使用fs.chown
更改所有者,并使用fs.chmod
更改权限。
请参阅: