【发布时间】:2020-02-18 08:28:55
【问题描述】:
我在尝试使用 Node 的 fs.copyFileSync 并尝试使用 fs-extra 复制文件时遇到了一个神秘的错误,并且在所述文件大于 2GB 时似乎遇到了错误。
此外,由于某种原因,在我的 MacBook Air 上使用完全相同的节点版本和文件运行相同的 sn-p 不会产生任何问题。由于给出的错误,谷歌搜索似乎无济于事。
我已经检查过磁盘空间和权限问题。手动使用 Finder 复制似乎没问题。
我能找到的最接近的信息是关于这个 Github 问题: https://github.com/coderaiser/cloudcmd/issues/163#issuecomment-386577523
更新:
我使用 mkfile -n 1999m testfile1 和 mkfile -n 2g testfile2 创建了 2 个文件进行测试,然后尝试使用节点复制它们。 1.999GB 文件工作正常,2GB 文件因未知错误而失败。所以出于某种原因,这里有一个明确的 2GB 限制。
环境:
- Mac mini 2018
- macOS Catalina 10.15 19A602
- 节点 12.13
const fs = require('fs');
fs.copyFileSync('/Users/michael/Movies/wamp/1.mp4', '/Users/michael/Desktop/1.mp4');
internal/fs/utils.js:220
throw err;
^
Error: UNKNOWN: unknown error, copyfile '/Users/michael/Movies/wamp/1.mp4' -> '/Users/michael/Desktop/1.mp4'
at Object.copyFileSync (fs.js:1790:3)
at Object.<anonymous> (/Users/michael/Development/homelab/meiti/copy-test.js:3:4)
at Module._compile (internal/modules/cjs/loader.js:956:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
at Module.load (internal/modules/cjs/loader.js:812:32)
at Function.Module._load (internal/modules/cjs/loader.js:724:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)
at internal/main/run_main_module.js:17:11 { errno: -1429910540, syscall: 'copyfile', code: 'UNKNOWN', path: '/Users/michael/Movies/wamp/1.mp4', dest: '/Users/michael/Desktop/1.mp4' }
【问题讨论】:
-
愚蠢的问题,但我不得不问:您是否需要可用磁盘空间才能复制该文件?
-
是的,空间够大,另外用Finder复制文件完全没问题。
-
我也收到了!
-
@redshift5 我在 Mojave (iMac pro 2018) 上遇到了同样的问题,我使用的是节点 10.16.x。如何使用所需的补丁编译它?