[nodeJS] EXDEV: cross-device link not permitted 해결
리눅스의 USB 메모리에서 하드로 파일을 이동할때 발생하는 cross-device link not permitted 에 대해서 정리 해본다.
원인
cross-device link not permitted 란
- 리눅스에서 rename으로 파일을 다른 디바이스로 이동할때 에러가 발생하는 문제 입니다. rename 명령어는 기본적으로 동일한 디바이스에서 처리되는 명령어 입니다.
해결
- 파일을 stream으로 읽어서 stream으로 write해주고 완료되면 이전파일은 삭제 시켜주면 된다.
const rs = fs.createReadStream(tempImageFile);
const ws = fs.createWriteStream(uploadImageFile);
rs.pipe(ws);
rs.on('end', () => {
fs.unlinkSync(tempImageFile);
});
- 또한 copyFile 함수로 문제를 해결 할 수 있다.
fs.copyFile(tempImageFile, uploadImageFile, (err) => {
fs.unlink(tempImageFile, (err) => {});
if (err) console.log(err)
});
Author And Source
이 문제에 관하여([nodeJS] EXDEV: cross-device link not permitted 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hong-brother/nodeJS-EXDEV-cross-device-link-not-permitted-해결저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)