我正在尝试使用mkdirp节点模块创建一个文件夹.但它正在创建0775权限,但我需要创建0777权限.官方文档说它默认为0777但在我的情况下它是0755.任何人都可以帮助我吗?码:
var new_location = 'public/images/u/7/'; mkdirp(new_location, function(err) { if (err) { } else { } });
robertklep.. 16
文档说明默认值是0777 & (~process.umask())
,这意味着你的umask值是从0777"减去"的.由于umask通常是002或022,你最终会得到0775或0755.
但是,即使您提供0777权限mkdirp()
,基础系统调用仍将应用umask值.要防止这种情况,您需要清除umask,使用所需的权限创建目录,并(可选)将umask恢复为以前的值:
var oldmask = process.umask(0); mkdirp(new_location, '0777', function(err) { process.umask(oldmask); if (err) ... ... });
或者,您可以fs.chmod()
在创建目录后使用设置正确的权限.
文档说明默认值是0777 & (~process.umask())
,这意味着你的umask值是从0777"减去"的.由于umask通常是002或022,你最终会得到0775或0755.
但是,即使您提供0777权限mkdirp()
,基础系统调用仍将应用umask值.要防止这种情况,您需要清除umask,使用所需的权限创建目录,并(可选)将umask恢复为以前的值:
var oldmask = process.umask(0); mkdirp(new_location, '0777', function(err) { process.umask(oldmask); if (err) ... ... });
或者,您可以fs.chmod()
在创建目录后使用设置正确的权限.