elfinder Cloud Thumbnail Setting 엘파인터에서 클라우드와 같이 썸네일을 표시할 수 없는 다른위치에 있는 파일의 썸네일을 표현하는 방법 서버에서 실제파일의 위치는 /Documents 에 있고, 웹서비스 루트는 /publichtml 인경우 elfinder 의 기본 설정 connector.php 파일 $opts = array(...) 부분에서 'roots' => array(...) 부분의 // Items volume 내용을 수정하여 실제파일의 경로와 Mimetype, Access 방법, 썸네일 구성을 설정하게 됩니다. 서비스하려는 파일이 웹 루트(publichtml) 안에 위치하는 경우 기본 썸네일은 파일의 기본경로에 있는 .tmb 폴더에 기록됩니다. 따라서 특별한 설정을 하지 않더라도 사용자가 웹서비스를 통해 해당 경로에 접근하게 되면 자동을 .tmb 폴더를 생성하여 썸네일이 만들어지게 됩니다. 그러나 클라우드 드라이브나, ftp 를 통한 연결, 웹서비스 스토리지내의 웹루트의 상위 경로 등 웹서비스 경로가 아닌 위치에 접근하도록 설정하는 경우 다음과 같은 문제가 발생합니다. 실제파일을 서비스하고자 하는 경로의 .tmb 가 생성되고 이 위치에 썸네일이 생성됨 생성된 썸네일을 불러오고자 하는 경우 웹 루트(publichtml)에 위치하지 않으므로 이 썸네일 파일은 잘못된 URL을 가지게 됨. 따라서 썸네일은 생성이 되었으나 웹에서 이 썸네일을 보여줄수 없음. - 예) /Documents/.tmb/생성된썸네일.png → 웹서비스) 도메인/../Documents/.tmb/생성된썸네일.png 즉, https://yangel.familyds.com/Documents/.tmb/생성된썸네일.png 와 같은 형태로 서비스 되므로 실제 이미지는 보이지 않음. [해결방법] 웹루트 아래에 썸네일을 위한 폴더를 생성함. 예시) /publichtml/TMP/.tmb // 소유자 html, 권한 777 실제서비스할 폴더의 권한을 웹에서 읽을 수 있도록 허용 예시) /Documents // 소유자 html, 권한 755, 777 보안을 고려하여 적당히 설정 connector.php 에서 $opts = array(...); 을 벗어난 위치에 아래 내용 설정 Cloud Volumes 설정을 위한 경로와 보관 기간 등 생성 // Thumbnail settings for cloud volumes $tmbConfig = array( 'tmbPath' => '../TMP/.tmb', 'tmbURL' => dirname($_SERVER['PHP_SELF']) . '/../TMP/.tmb/', 'tmbGcMaxlifeHour' => 2160, // 90 days 'tmbGcPercentage' => 5, // 5 execute / 100 tmb querys ); connector.php 에서 $opts = array(...); 을 벗어난 위치에 아래 내용 설정 $opts['roots'][] = array_merge($tmbConfig, array( 'phash' => 'g1_Lw', // 소속 그룹 설정 'driver' => 'LocalFileSystem', // driver for accessing file system (REQUIRED) 'path' => '../../../Documents/', // 파일 서비스 경로 'trashHash' => 't1_Lw', // 휴지통 그룹 명칭 'winHashFix' => DIRECTORY_SEPARATOR !== '/', 'uploadDeny' => array('all'), // 거부할 Mimetypes 'uploadAllow' => array('all'), // 허용할 Mimetypes 'uploadOrder' => array('deny', 'allow'), // 허용, 거부 등 'alias' => 'ShareSpace', // 표시할 이름 'accessControl' => 'access', 'defaults' => array('read' => true, 'write' => true), 'tmbURL' => dirname($_SERVER['PHP_SELF']) . '/../TMP/.tmb/' ) ); $tmbConfig 를 변형하여 다수의 경로를 등록할 수 있음 // Thumbnail settings for cloud volumes $tmbConfig1 = array( 'tmbPath' => '../TMP/.tmb1', 'tmbURL' => dirname($_SERVER['PHP_SELF']) . '/../TMP/.tmb1/', ); $tmbConfig2 = array( 'tmbPath' => '../TMP/.tmb2', 'tmbURL' => dirname($_SERVER['PHP_SELF']) . '/../TMP/.tmb2/', ); // Cloud Volumes Setting $opts['roots'][] = array_merge($tmbConfig1, array( 'phash' => 'g1_Lw', // 소속 그룹 설정 'driver' => 'LocalFileSystem', // driver for accessing file system (REQUIRED) 'path' => '../../../Documents/', // path to files (REQUIRED) 'trashHash' => 't1_Lw', // elFinder's hash of trash folder 'winHashFix' => DIRECTORY_SEPARATOR !== '/', // to make hash same to Linux one on windows too 'uploadDeny' => array('all'), // All Mimetypes not allowed to upload 'uploadAllow' => array('all'), // Mimetype `image` and `text/plain` allowed to upload 'uploadOrder' => array('deny', 'allow'), // allowed Mimetype `image` and `text/plain` only 'alias' => 'ShareSpace', 'accessControl' => 'access', // disable and hide dot starting files (OPTIONAL) 'defaults' => array('read' => true, 'write' => true), 'tmbURL' => dirname($_SERVER['PHP_SELF']) . '/../files/.tmb1/' ) ); $opts['roots'][] = array_merge($tmbConfig2, array( 'phash' => 'g1_Lw', // 소속 그룹 설정 'driver' => 'LocalFileSystem', // driver for accessing file system (REQUIRED) 'path' => '../../../Camera/', // path to files (REQUIRED) 'trashHash' => 't1_Lw', // elFinder's hash of trash folder 'winHashFix' => DIRECTORY_SEPARATOR !== '/', // to make hash same to Linux one on windows too 'uploadDeny' => array('all'), // All Mimetypes not allowed to upload 'uploadAllow' => array('all'), // Mimetype `image` and `text/plain` allowed to upload 'uploadOrder' => array('deny', 'allow'), // allowed Mimetype `image` and `text/plain` only 'alias' => 'Photos', 'accessControl' => 'access', // disable and hide dot starting files (OPTIONAL) 'defaults' => array('read' => true, 'write' => false), 'tmbURL' => dirname($_SERVER['PHP_SELF']) . '/../files/.tmb2/', ) );