메인 항목으로

외부 저장소 추가 (Local directory mount)

이 과정은 Portainer 같은 Docker 관리툴을 이용하면 편합니다. Portainer를 이용한 방법을 설명 드립니다.

1. Portainer 접속 후 Nextcloud Container에 진입해 "Duplicate/Edit"를 선택 합니다.

portainer_container_edit.png

"Advanced container settings"을 찾아  "Volumes" 선택합니다.

" Volume mapping"에서 "map additional volume"을 선택합니다.

Advanced_container_settings.png

"container" 필드는 nextcloud에서 사용될 경로 입니다. 위치 입력 후 오른쪽 "Blind" 옵션 선택 합니다.
제 경우는 nextcloud root 및 data 디렉토리 밑에 임의 위치를 설정했습니다.

"host" 필드에는 NAS에 위치한 마운트할 대상물의 절대 경로를 입력합니다.

Advanced_container_settings2.png

"Actions"에서 "Deploy the container"로 컨테이너를 재빌드 해줍니다.

deploy.png

마운트할 외부 디렉토리에 "777" 권한을 부여 합니다.

# chmod 777 -R /volume1/xxxx (host에서 설정한 디렉토리)

이제는 Nextcloud에서 외부저장소를 설정해줄 차례 입니다.

Nextcloud에 관리자로 접속 후 "앱"에서 "External storage support" 앱을 찾아 설치해 줍니다.

ex_storage_app.png

관리자 설정 진입 후 "관리 > "외부 저장소"를 선택하고 아래 값을 넣으 줍니다.

 폴더 이름 : Nextcloud에서 표시될 폴더 이름
 설정 : 위에서 Binding한 nextcloud container 내부 경로 입력

ex_storage_setting.png

설정이 완료 됐으면 아래와 같이 외부저장소가 추가된 것을 확인 할 수 있습니다.

ex_storage_result.png

최초 파일량이 많은 외부저장소를 추가 시 백그라운드 인덱싱 작업으로 서버부하가 클 수 있습니다. 인덱싱이 끝나면 정상화 됩니다.
백그라운드 인덱싱 후에도 자료가 다 올라오질 않을 경우 수동으로 occ를 스캔할 수 있습니다.

Portainer > nextcloud 콘솔 > occ files:scan --all 실행
(도커 이미지가 공식이미지일 경우 sudo -u www-data php occ files:scan --all 입니다.)

occ_scan.png

[Trouble Shooting]

1. "@eaDir" 삭제 방법

# cd /volume1
# find -type d -name '@eaDir' -print0 | xargs -0 rm -rfv
# find -name 'thumbs.db' -exec rm -vf {} \;
# find -name 'Thumbs.db' -exec rm -vf {} \

2. "Entry "...." will not be accessible due to incompatible encoding" 관련 문제는 한글이나 특수문자로된 폴더/파일명 문제 입니다.

# ./convmv -f utf-8 -t utf-8 -r --notest --nfc <nextcloud-data-folder>

Portainer > nextcloud 콘솔 > occ files:scan --all 재실행

 * convmv가 없어 실행 불가 시 "wget http://www.j3e.de/linux/convmv/convmv-2.05.tar.gz"으로 받아
   "tar xzvf convmv-2.05.tar.gz"로 압축해제 후 실행 하시면 됩니다.