使用 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
更改权限。
参见:
我有一个快捷方式 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
更改权限。
参见: