[nodeJS] fs.unlink 파일 삭제 시도 중 operation not permitted, unlink 에러발생
fs모듈
fs는 FileSystem의 약자로, fs모듈은 NodeJS에서 파일 입출력 처리를 할 때 사용한다.
fs.unlink와 fs.unlinksync로 파일을 삭제할 수 있는데,
unlink는 비동기 unlinksync는 동기적으로 파일을 삭제한다.
내가 하고자 했던 작업은..
이렇게 앱서버가 있고,
서버 루트폴더에 public/images 에 resized된 이미지가 있고
로컬 파일시스템에 user/images 에 원본 이미지가 있음.
그리고 삭제 api를 호출하면
양쪽 경로에 있는 이미지를 삭제하는 거였는데...
fs.unlink(filePath)로 삭제를 하면 계속
operation not permitted, unlink 이렇게 에러가 발생함..
근데 앱서버의 public/images 하위의 파일은 잘 삭제가 되는데
로컬 파일시스템의 파일이 잘 삭제가 안되었음.
로컬파일시스템에 접근권한이 없어서 그런가 하는 의심을 하긴했는데,
계속 fs모듈로 시도를 했던이유가..
삭제가 아예 안되는건 아니고
에러가 뜰때도 있고 아닐 때도 있어서 ^^...............(한가지만 해라 즌쯔,,,,,,,,,,,)
그래서 미련을 못버리고 계속 시도했는데
갑자기 또 로컬 파일을 잘지우는 것................(이유는 모름)
근데 이대로 계속 개발을 진행하는건 완전 찝찝
fs.unlink (또는 unlinkSync)로는 로컬 파일시스템의 파일을 안전하게 지울수 없다는 생각이 들어
child_process의 exec를 사용하기로 했다.
if(fs.existsSync(originalPath)){
cp.exec(`del /f /q "${originalPath}"`, (error, stdout, stderr) => {
if(error){
console.log(`파일 삭제중 에러발생 : ${error.message}`);
return;
}
if(stderr){
console.log(`stderr: ${stderr}`);
}
console.log(`${originalPath} 파일 삭제됨 ! `);
})
}
삭제 잘 됨 ^^
'기타 > 문제해결' 카테고리의 다른 글
Window에서 postman 완전 삭제후 재설치 (0) | 2024.08.06 |
---|---|
oracle vm virtualBox 설치시 에러 (0) | 2024.07.24 |
[node.js] mariaDB 연결 시 unknown plugin auth_gssapi_client 에러 (1) | 2024.07.23 |
윈도우에 minikube 설치 후 version 확인 시 에러 발생 (0) | 2024.07.05 |
[Nodejs / PM2] window에서 pm2로 node서버 실행 시 cmd창 깜빡거림 현상 (0) | 2024.03.14 |