Skip to content
Server
2015.03.03 09:07

웹하드 서버 구축하기

조회 수 2601 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

 

http://www.xpressengine.com/?mid=download&package_id=20466120

 

https://www.xpressengine.com/index.php?mid=download&package_id=21643227

http://tuwlab.com/ece/9086


질문:xe에 질문

ELFINDERXE 가 한글파일명 및 한글폴더에 문제가 발생된다.

인코딩에 문제가 생기나?

enfinder/include/php/elFinderVolumeMySQL.class.php


관세납부.PNG



java1.PNG




 2.7v500f.PNG


 

 

 protected function _mkdir($path, $name) {
  return $this->make($path, $name, 'directory') ? $this->_joinPath($path, $name) : false;
 }
 
 /**
  * Create file and return it's path or false on failed
  *
  * @param  string  $path  parent dir path
  * @param string  $name  new file name
  * @return string|bool
  * @author Dmitry (dio) Levashov
  **/
 protected function _mkfile($path, $name) {
  return $this->make($path, $name, 'text/plain') ? $this->_joinPath($path, $name) : false;
 }
 
 /**
  * Create symlink. FTP driver does not support symlinks.
  *
  * @param  string  $target  link target
  * @param  string  $path    symlink path
  * @return bool
  * @author Dmitry (dio) Levashov
  **/

 

 

 

enfinder/include/php/elFinderVolumeDriver.class.php

 protected function encode($path) {
  if ($path !== '') {

   // cut ROOT from $path for security reason, even if hacker decodes the path he will not know the root
   $p = $this->_relpath($path);
   // if reqesting root dir $path will be empty, then assign '/' as we cannot leave it blank for crypt
   if ($p === '') {
    $p = DIRECTORY_SEPARATOR;
   }

   // TODO crypt path and return hash
   $hash = $this->crypt($p);
   // hash is used as id in HTML that means it must contain vaild chars
   // make base64 html safe and append prefix in begining
   $hash = strtr(base64_encode($hash), '+/=', '-_.');
   // remove dots '.' at the end, before it was '=' in base64
   $hash = rtrim($hash, '.');
   // append volume id to make hash unique
   return $this->id.$hash;
  }
 }
 
 /**
  * Decode path from hash
  *
  * @param  string  file hash
  * @return string
  * @author Dmitry (dio) Levashov
  * @author Troex Nevelin
  **/



1.PNG




(수년간 XE 들락날락하고, 이런저런 사이트들도 만들어봤지만,, 이 모듈이 가장 '팍' 하는 느낌이 있네요. 체감상 ㅎ;;)




0. 저는 프로그래밍을 배워본적이 한번도 없는 초보이기 때문에, 아마 아래의 코드에 엄청난 헛점이 있을겁니다. 분명.


1. XE 회원들 이름으로 자동으로 폴더를 생성하게 하고, 해당 폴더에만 권한을 준다. ($grant->manager 회원은 루트 디렉토리를 자유롭게 이용할 수 있다.)



/modules/elfinderxe/elfinderxe.controller.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// User 별 폴더 지정 및 폴더 생성 : DesignSORI Custom
        $logged_info = Context::get('logged_info');
        $grant = Context::get('grant');
        if(!$grant->manager){
            $webhard_user_folder $this->module_info->root_path.'/'.$logged_info->user_id;
            if(!is_dir($webhard_user_folder)){
                $webhard_user_folder_old_umask = umask(0);
                mkdir($webhard_user_folder,0707);
                umask ($webhard_user_folder_old_umask);
            }
            $this->module_info->root_path = $webhard_user_folder;
            $this->module_info->root_url = $this->module_info->root_url.'/'.$logged_info->user_id;
            $this->module_info->root_alias = $this->module_info->root_alias.' / '.$logged_info->user_id;
        }
 
 
        // ElfinderXE Conntector 시작 (요 위에 저 코드를 삽입합니다.)
(뭔가 이상없이 작동은 되지만, 보안상 엄청 허접한게 아닐까??)



2. 비회원인 경우, 에러를 만들어서, 접속 불가능하게 한다. (모듈 설정 -> 권한관리 에서 할 수도 있지만. 이렇게 완전 차단도 가능할 듯 요??)


/modules/elfinderxe/elfinderxe.controller.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// User 별 폴더 지정 및 폴더 생성 : DesignSORI Custom
        $logged_info = Context::get('logged_info');
        $grant = Context::get('grant');
        if(!$logged_info){
            $this->module_info->root_path = '';
            $this->module_info->root_url = '';
            $this->module_info->root_alias = '';
        }
        elseif(!$grant->manager){
            $webhard_user_folder $this->module_info->root_path.'/'.$logged_info->user_id;
            if(!is_dir($webhard_user_folder)){
                $webhard_user_folder_old_umask = umask(0);
                mkdir($webhard_user_folder,0707);
                umask ($webhard_user_folder_old_umask);
            }
            $this->module_info->root_path = $webhard_user_folder;
            $this->module_info->root_url = $this->module_info->root_url.'/'.$logged_info->user_id;
            $this->module_info->root_alias = $this->module_info->root_alias.' / '.$logged_info->user_id;
        }
 
 
        // ElfinderXE Conntector 시작 (요 위에 저 코드를 삽입합니다.)
(이런식으로 무식하게 에러를 일부러 만드는게 과연 맞는 짓인건가? / 로그 등등 문제 생기지 않을까?)



3. 그룹별, 회원별, 혹은 등등등? 의 구분을 둬서

3-1. 폴더 용량 제한을 둔다.

3-2. 전송속도 제한을 둔다.


4. 회원 개인메뉴 (회원정보 변경, 내가 쓴 글 보기 등등) 영역에 '내 웹하드' 라는 메뉴를 추가하게 한다.


5. 뭔가 다른 기능들을 더 상상해볼 수 있지 않을까??





..................... 이런식으로 발전시켜보는건 어떨까요?!





 

elfinder 란?

jQuery로 구현되어 있는 웹 기반 파일 관리자 입니다.

손쉽게 폴더 및 파일 브라우징을 할 수 있으며,

업로드 및 다운로드, 미리보기, 압축 등 여러가지 강력한 기능을 포함하고 있습니다.

또한 유용한 여러가지의 단축키를 제공합니다.

 

 

■ 설치 및 환경 설정 안내

elfinder 를 사용함에 있어서 상당히 많은 옵션으로 사용할 수 있습니다만..

크게는 기본 옵션으로 모든것을 편리하게 사용할 수 있기 때문에,

반드시 필요한 루트 폴더 경로와 URL 그리고 취향에 따라 독(dock) 기능을 켜고 끌 수 있는 옵션만을

XE 에서 조작할 수 있도록 하였습니다.

elfinder 애드온을 xe 애드온 폴더에 설치합니다.

본 애드온은 xe core 1.5.x 에서 동작하게끔 만들어져 있습니다. 


■ 웹에서 접근할 폴더 만들기

url로 접근 가능한 폴더를 하나 생성하여 쓰기 권한을 줍니다.

저는 우분투 리눅스를 서버로 사용하는데 www-data 그룹과 유저로 주었습니다.

잘 모르시는 분은 707 권한을 주세요!

설정 화면에서 폴더 경로와 URL 을 예와 같이 작성하여 줍니다.

xe 자체 폴더나 기타 권한 없는 폴더도 설정할 수 있습니다만..

권한이 없기 때문에 쓰기같은것은 되지 않는데다가, xe 의 file 폴더에는 권한을 가지고 있으며

여러가지 보안상의 위험성이 있다고 판단되므로 임의의 폴더를 사용하는 것을 추천합니다.


■ 확인사항

애드온 폴더 elfinder/include/connector.php 파일은 쓰기 권한을 가지고 있어야 합니다.

본 애드온을 다운로드 받으시면 기본적으로 쓰기 권한을 가진 채 압축되어 있으나,

압축프로그램 또는 ftp로 올리시는 과정에서 권한이 없어질 수 있으니 오류 발생 시 권한을 확인해 주세요!


■ 사용법

사이트 내 어디에서든 <div id="elfinder"></div> 로 사용할 수 있지만,

퍼포먼스의 향상을 위해서 기왕이면 대상 모듈을 선택해서 사용하는 것을 추천합니다.

또한 엘리먼트 아이디를 open,close,dock,undock 네가지를 사용하여,

elfinder 자체를 컨트롤 할 수 있습니다.

예를 들면, <div id="open" class="button"></div>

이러한 버튼을 만들었다면, 이 버튼을 누르면 elfinder 파일 관리자가 열립니다.

close 는 파일 관리자를 닫습니다.

dock / undock 은 elfinder 를 페이지에서 떼어내어 이동할 수 있게 하거나 고정시킵니다.

(설정에서 독 기능을 활성화 하셔야 합니다.)



■ 옵션

추가적인 옵션을 사용하고 싶으신 분은 애드온 폴더 elfinder/include/connector_ori.php 파일을

수정하시면 됩니다.



■ 기타 한마디

태어나서 처음으로 만들어본 애드온 입니다.

엄청 거창해 보이지만 사실 거창한것은 elfinder 이고,

그것을 사용하게 끔 애드온으로 만든것은 무척 허접합니다..

초보이기 때문에 무척 간결하고 말도 안되는 방법으로 만들었습니다.

고수분들이 파일을 열어볼 것을 생각하면 참 부끄럽습니다.

공부가 많이 되었는데 더욱 열심히 공부할께요~ ^^


참고로 한글화는 제가 직접 하였습니다.

상황에 안맞는 단어나 오탈자가 있으면 알려주세요.

프로젝트 사이트에 올렸는데 다음 릴리즈때 정식으로 포함하여 준다니까

elfinder를 직접 받아서 다른곳에 사용하실 분은 참고하세요~

그리고 elfinder 에서 제공하는 파일과는 일부 구성이라던가.. 약간 다릅니다.


위의 스크린샷 중 강아지 사진은 초상권이 있습니다.

제 여동생 보리입니다 ^^;;;


■ 버전 업데이트 0.1.1

한글화 중 '업로드 파일'을 '파일 업로드'로 의미에 맞게 수정하였습니다.

StyleRoot 님께서 알려주셨습니다. 감사합니다


시간대를 정상적으로 한국 시간대로 나오게 수정하였습니다.

해피신 님께서 알려주셨습니다. 감사합니다 ^^


■ 문의에 대한 답변


1.사이트가 백지가 되는 문제

혹시 XE 코어 버전이 1.4.x 가 아닌지 확인해 주세요!

이 애드온은 1.5.x 버전에서 정상적으로 사용이 가능합니다!


2.백엔드의 설정이 올바르지 않다고 표시되는 것은,

elfinder가 애드온 설정에서 설정한 폴더 및 URL 경로로 접근할 수 없기 때문에 발생합니다.

(권한이 없다고 하더라도 읽기 권한만 있다면 정상적으로 표시는 됩니다.)

그러므로 애드온을 설치하시면 꼭 설정에 들어가셔서 정상적인 폴더 경로 및 URL을

입력하신 후 테스트 해보시기 바랍니다!

 

 

개인 서버에 나만의 전용 웹하드(클라우드) 구축하기 Pydio편

 

 

개인 서버 전용 웹하드(클라우드) 비교

 

 

 

 

http://www.kbench.com/?q=node/83135&page=8

 

https://www.xpressengine.com/forum/22618942

 

 

 

 

 

 

 

 

로그인 후 댓글쓰기가 가능합니다.

?
  • ?
    Progress 2015.03.03 18:34
    http://tuwlab.com/computer/9086
  • ?
    서버님 2019.04.09 06:57
    안녕하세요~

    저가 별도로 elfinderxe의 업데이트 판을 만들었는데요~

    해당 소스를 추가하여 별도 배포 해도 될까요?

    답변 부탁드릴께요~

List of Articles
번호 분류 제목 날짜 조회 수
410 컴퓨터잡담 하드 공유폴더 해제하기 1 2012.03.19 7895
409 AutoHotKey autohotkey) 스크린세이버 활성화 / 비활성화 시키기. 2012.03.17 7233
408 AutoHotKey autohotkey) 화면보호기, 바탕화면 control 창 열기 3 2012.03.17 7656
407 Excel 엑셀) 날짜를 요일로 변환하기 2 2012.03.16 18380
406 AutoHotKey Autohotkey) 화면보호기(ScreenSaver) On/Off 방법 17 2012.03.16 38228
405 AutoHotKey autohotkey) 화면보호기 실행 전 클릭으로 화면보호 안걸리게 하기 2012.03.15 7978
404 AutoHotKey ET프로젝트 2 file 2012.03.14 5361
403 컴퓨터잡담 USB 부팅디스크 만들기 1 5 file 2012.03.14 4523
402 컴퓨터잡담 하드 디스크 드라이브(HDD) 숨기기 3 file 2012.03.14 6692
401 AutoHotKey autohotkey) 편입 변수 4 2012.03.13 27540
400 컴퓨터잡담 safeout.exe 프로세스 삭제하기 3 2012.03.12 12688
399 컴퓨터잡담 윈도우 XP에서 메모리를 시스템 캐시로 설정하는 방법 file 2012.03.08 4871
398 Excel [엑셀] 소수점 정수만들기 .. 반올림 올림 내림 3 2012.03.08 15773
397 컴퓨터잡담 IGMP, IGMP Snooping Internet Group Management Protocol 인터넷 그룹 관리 프로토콜 2 2012.03.07 7168
396 AutoHotKey autohotkey) 윈도우 ahk_id 추출하기 2 2012.03.06 28385
395 Excel 엑셀) 피벗테이블 원본데이터 영역범위 수정방법 1 2 file 2012.03.06 23175
394 컴퓨터잡담 탐색기 다른 이름으로 저장하기 저장위치 즐겨찾기 폴더 변경하기 2 file 2012.03.02 5069
393 컴퓨터잡담 윈도우7 인터넷 속도 제한 해제(윈도우7 QOS 설정) 30 2012.02.29 19840
392 컴퓨터잡담 XE) 관리자모드 업데이트가 안되는 이유 file 2012.02.28 5082
391 컴퓨터잡담 인터넷 익스플러러 속도 향샹을 위한 팁 1 file 2012.02.25 23776
Board Pagination Prev 1 ... 21 22 23 24 25 ... 43 Next
/ 43

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소