본문 바로가기
서버/윈도우 서버

Subsonic + Google Drive (Raidrive) 음악 갱신 문제 해결하기

by ㅋㅋ잠자 2019. 1. 15.
반응형

안녕하세요?


저는 아래와 같이 음원들을 관리 중입니다.



서브소닉은 윈도우에 설치하고 Raidrive 로 음악을 스캔하고 있습니다.


https://blog.djjproject.com/443


음 서브 소닉 설정은 상기와 같고 인덱스를 보면 아래와 같이 되어 있습니다.



문제점은 이제 요기서 발생합니다.


음.. 해당하는 폴더에 음원을 추가하고 스캔을 돌릴 경우에 파일이 추가가 되지 않습니다. DB를 완전 날리고 새로 처음부터 스캔해야 음원이 올라오는 그러한 문제가 있습니다.


곡 용량이 146GB 정도 되기 때문에 .. 그리고 구글 드라이브에 있어서 스캔시간이 1일 정도 걸리는 것을 감안하면 정말 참을 수 없는 시간입니다.



지금 다시 확인해 보니 157GB 네요..


이는 제가 확인해본 결과 실제 파일 시스템에서는 폴더 내부의 내용이 바뀔 경우에는 디렉터리 마지막 수정 시간이 바뀝니다.


아래의 새폴더에 파일을 아무거나 하나 추가하면 마지막으로 수정한 시간이 바뀌는데요.




그런데 구글 드라이브는 특정 폴더에 관해 내부 내용이 바뀌어도 마지막 수정시간이 바뀌지 않습니다.


그러다 보니 서브소닉에서 스캔 작업이 일어나지 않는 것입니다.


스캔할 당시 폴더 시각을 DB에 저장하고 다음에 스캔시 폴더 시각이 같으면 스캔을 하지 않습니다. 이와 관련하여 소스코드를 수정하여 반영하려고 했으나.. 서브소닉이 클로즈 소스로 바뀌면서 수정을 할 수 없게 되었네요.


물론 오픈소스인 매드소닉이 있지만, 디자인이 서브소닉4 때 디자인이라 별로더라구요.


음.. 그럼 구글 드라이브의 폴더 시간을 바꿀 수 있는 방법은 없을까? 고민을 해보게 됩니다. 아직 일괄 스크립트를 작성하지 않았지만 for 문과 if 문 read 와 rclone 을 사용하면 문제없이 작성이 가능할 것입니다.


정답은 폴더 이름을 아무거나로 바꾸고 다시 원본으로 돌려주면 폴더의 마지막 수정 시간이 바뀝니다.


아래와 같습니다.




폴더 이름 변경으로 Album1 -> Album 으로 원본 이름으로 돌려주시면 수정한 날짜가 바뀝니다. 


그럼 레이드라이브 상 폴더에도 시간 표기가 바뀝니다.



상기 처럼 바뀝니다.


그리고 음악 재스캔을 돌려주면 변경된 음악들이 올라옵니다.


그럼 이후에는 자동 스크립트를 제작하여 아래와 같이 구성하면 될것 같습니다.


1. 폴더명 변경 -> 원본으로 돌리는 스크립트 (24:00 에 crontab)

2. 서브소닉 뮤직 라이브러리 스캔 (24:10 에 시작)


감사합니다.

반응형

댓글