在Debian上重命名文件Wheezy無法使用fs.rename或fs.renameSync。Node.JS fs.rename不起作用
這隻發生在從/ tmp /移動到另一個位置的文件中。
報告的錯誤是:EXDEV,不允許跨設備鏈接。
在Debian上重命名文件Wheezy無法使用fs.rename或fs.renameSync。Node.JS fs.rename不起作用
這隻發生在從/ tmp /移動到另一個位置的文件中。
報告的錯誤是:EXDEV,不允許跨設備鏈接。
Debian Wheezy默認使用tmpfs作爲/ tmp文件夾。
這可以通過修改/ etc/default/rcS來關閉。
RAMTMP=yes
必須被設置爲
RAMTMP=no
問題是Node fs.renameSync不能跨設備重命名,而不是某個特定的機器有不同的tmp設備。不要僅僅因爲這個關閉RAMTMP。 (在當前的Debian上,Jessie RAMTMP不工作,/ tmp tmpfs通過systemd配置。)使用一些更智能的重命名,例如模塊__mv__:http://stackoverflow.com/a/29287813/196206 – Messa
這是另一種解決方案,它爲我的作品:
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] [1]:http://stackoverflow.com/questions/4568689/how-do-i-move-file-a-to-a-不同分區在節點js – SaliproPham
可能重複[如何將文件a移動到Node.js中的不同分區或設備?](https://stackoverflow.com/questions/4568689/how-do-i -move-file-a-to-a-different-partition-or-device-in-node-js) – bugwheels94