2017-02-09 47 views
1

我有一個快速API將文件上傳到具有root用戶的服務器文件系統中。有沒有一種方法,以所有者和權限添加到該文件時,我上傳它,例如:車主:我訪問:644使用express和節點添加文件權限

我的路線這個樣子的

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

您可以更改文件的所有權的唯一方法是,如果你運行你的腳本,作爲root(或者,如果你寫了一個SUID根助手程序做到這一點)。當然如果你在談論操作系統的訪問權限。您的後端可以基於cookie,seesion id,某個頭中的令牌或請求中的其他任何內容來爲文件提供服務。但是,如果沒有root權限,您將無法更改文件系統中文件的所有權。考慮一下,如果這是你真正需要的東西。

如果您的腳本以root用戶身份運行,您可以使用fs.chown更改所有者,fs.chmod更改權限。

參見:

+0

的確,應用程序將通過根業主執行,但我需要的文件關聯到不同的所有者,一旦上傳到文件系統 – kyserslick

+0

@kyserslick如果是這樣,那麼你可以使用fs.chmod和fs.chown - 查看我更新的答案。 – rsp

+0

是的,我發現,tkx。 – kyserslick