首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网络驱动器上appendFile上的EPERM

网络驱动器上appendFile上的EPERM
EN

Stack Overflow用户
提问于 2015-12-09 00:47:05
回答 3查看 353关注 0票数 14

应用程序必须将日志数据存储到网络驱动器。当驱动器托管在Windows下时,一切正常。当驱动器托管在Mac下时,读/写是可以的,但append会获得EPERM,因此日志根本不起作用。代码非常简单

代码语言:javascript
复制
fs.appendFileSync('xxx.txt', 'zzzzzzzz');

如何正确追加数据?文件通常太大,无法加载到内存中。

更新:读-写-删除-创建是Ok!仅使用append打开失败

EN

回答 3

Stack Overflow用户

发布于 2015-12-16 19:25:47

当你对文件/文件夹没有足够的权限时,我会使用Luc Gendriks.EPERM。尝试以下操作

代码:

代码语言:javascript
复制
 fs.chmod('xxx.txt', 777, function(err){
  if(err){
   console.log(err);
   return;
  }
  fs.appendFileSync('xxx.txt', 'zzzzzzzz');
});

参考

https://nodejs.org/api/fs.html#fs_fs_chmodsync_path_mode https://nodejs.org/api/fs.html#fs_fs_appendfilesync_file_data_options

希望这能有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2015-12-14 01:17:27

EPERM代表Error - PERMission:不允许nodejs写入日志文件。检查应用程序是否有权访问日志文件,并对其进行更改,以便节点应用程序可以写入日志文件。

在mac上,您可以执行chmod 777 somefile.log (请注意,这允许访问您的文件系统的任何人都可以写入日志文件)。

可能是windows服务器创建了日志文件,而不允许mac服务器访问它(因为它不是所有者,写权限也不是公共的)。

票数 1
EN

Stack Overflow用户

发布于 2015-12-18 18:12:29

该文件是否正在被其他进程使用?(因此访问/操作被拒绝)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34161432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档