使用 fs.rename 或 fs.renameSync 无法在 Debian Wheezy 上重命名文件。
这只发生在从 /tmp/ 移动到另一个位置的文件中。
报错为:EXDEV,不允许跨设备链接。
这是另一个适合我的解决方案:
var fs = require("fs"),
util = require('util');
...
//fs.renameSync(files.upload.path, "/tmp/test.png");
var readStream = fs.createReadStream(files.upload.path)
var writeStream = fs.createWriteStream("/tmp/test.png");
util.pump(readStream, writeStream, function() {
fs.unlinkSync(files.upload.path);
});
Debian Wheezy 默认使用 tmpfs 作为 /tmp 文件夹。
这可以通过修改 /etc/default/rcS 来关闭。
RAMTMP=yes
必须设置为
RAMTMP=no