生产服务器创建uploads文件夹时出现EACCES权限拒绝错误求助
解决Node.js生产环境创建uploads文件夹权限问题
问题根源
运行Node.js应用的用户没有/home/ubuntu/anofy/dist/anomalify-server/目录的写入权限,导致无法创建uploads文件夹。
具体解决步骤
1. 手动创建并配置权限
在生产服务器终端执行以下命令:
# 切换到目标目录 cd /home/ubuntu/anofy/dist/anomalify-server/ # 创建uploads文件夹 mkdir uploads # 给运行应用的用户赋予权限(如果用ubuntu用户运行) chown ubuntu:ubuntu uploads # 如果是通过Nginx等服务运行(用户通常是www-data),执行这个 chown www-data:www-data uploads # 确保文件夹有读写权限 chmod 755 uploads
2. 调整应用运行用户
不要用root用户运行Node.js应用,切换到拥有目标目录权限的普通用户(比如ubuntu)启动应用,从根源避免权限越界问题。
3. 更改uploads存储路径(可选)
如果不想在当前目录创建,可将uploads放到用户有权限的目录(比如用户主目录),修改代码:
const folderPath = path.join(process.env.HOME, 'uploads');
4. 优化代码(可选)
用fs.promises和recursive: true简化文件夹创建逻辑,同时自动处理文件夹已存在的情况:
const folderName = "uploads"; const folderPath = path.join(__dirname, folderName); fs.promises.mkdir(folderPath, { recursive: true }) .then(() => console.log("Uploads folder ready (created or already exists)")) .catch(err => console.error("Error handling uploads folder:", err));
内容的提问来源于stack exchange,提问作者gali lohith
相关产品推荐
相关产品推荐

