Node.JS fs.rename不起作用

时间:2012-08-30 11:45:15

标签: node.js file-io debian

使用fs.rename或fs.renameSync在Debian Wheezy上重命名文件不起作用。

这仅发生在从/ tmp /移动到另一个位置的文件中。

报告的错误是:EXDEV,不允许跨设备链接。

2 个答案:

答案 0 :(得分:2)

这是另一个适合我的解决方案:

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);
});

答案 1 :(得分:0)

Debian Wheezy默认使用tmpfs作为/ tmp文件夹。

可以通过修改/ etc / default / rcS来关闭它。

RAMTMP=yes

必须设置为

RAMTMP=no