Node.js 错误:使用子进程调用二进制文件在节点AWS Lambda函数中生成EACCES
我在基于节点的AWS Lambda函数中有以下简化代码:Node.js 错误:使用子进程调用二进制文件在节点AWS Lambda函数中生成EACCES,node.js,permissions,aws-lambda,Node.js,Permissions,Aws Lambda,我在基于节点的AWS Lambda函数中有以下简化代码: import { execFile } from 'child_process'; execFile('./node_modules/webp/bin/dwebp', ['./tmp/file.wepb', '-o', './tmp/newFile.png'], (error, stdout, stderr) => { if (error) throw error; }); 如图所示,我在node\u modules/web
import { execFile } from 'child_process';
execFile('./node_modules/webp/bin/dwebp', ['./tmp/file.wepb', '-o',
'./tmp/newFile.png'], (error, stdout, stderr) => {
if (error) throw error;
});
如图所示,我在
node\u modules/webp/bin
中有一个二进制文件,我用execFile
调用它,将输出保存在文件夹/tmp/
中,但我得到了错误错误:spawn EACCES
。可能我没有被拒绝访问文件夹/tmp/
,因为我的代码正在成功地将文件写入其中。我可能只会被拒绝访问命令dwebp
本身。我不知道怎么处理。希望您能提供帮助。添加我的评论作为答案,因为这似乎是解决您问题的方法
写入文件夹意味着您具有写入权限。您可能仍然缺少执行权限
您可以使用
fs
模块中的chmod
编辑节点内的权限 写入文件夹意味着您具有写入权限。您可能仍然缺少执行权限。此外,您可以使用fs
模块中的chmod
命令使用节点编辑权限@谢谢你!使用fs.chmodSync()
完成了此任务。