Skip to content
Server
2015.03.03 09:07

웹하드 서버 구축하기

조회 수 3257 추천 수 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
번호 분류 제목 날짜 조회 수
917 AutoHotKey #ifwinactive & #ifwinexist 윈도우창 마다 핫키의 용도를 다르게 사용하는 방법 2011.02.14 16518
916 Excel 'C:Documents.xlsx' 을(를) 찾을 수 없습니다. 라는 오류 메시지가 나오는 경우 대처방법 2015.01.28 4765
915 WindowsTip (nPDF) 프린터 인쇄 내용을 PDF 파일로 변환하기 2015.01.24 2271
914 컴퓨터잡담 -응답없음- 으로 멈춰버린 프로그램 대기시간 줄이는 방법 2010.10.01 7819
913 컴퓨터잡담 .htaccess와 워터마킹을 이용한 이미지 링크 방지 2009.06.30 34917
912 WindowsTip 100M Full 속도내기(레지스터리) file 2013.01.11 6506
911 컴퓨터잡담 16진수 헥사, 2진수, 10진수, 8진법 변환 계산기; Hex Calc 2012.02.22 7916
910 컴퓨터잡담 2021년 플래시 플레이어 웹사이트 크롬에서 접속하는 방법 2021.07.05 2559
909 컴퓨터잡담 2023-09-23 서버다운 후 복구완료 secret 2023.09.23 35548
908 컴퓨터잡담 50 개 이상의 Ajax 예제들 2 2010.03.29 18950
907 컴퓨터잡담 50 개 이상의 Ajax 예제들 2010.03.29 18178
906 Server 8기가 램에 맞는 Mysql config 셋팅 값 1 2016.02.22 3856
905 컴퓨터잡담 ACTIVE-X 의 무서움 file 2015.12.26 666
904 컴퓨터잡담 AHK & my Address of Pointer and my Offset 2011.10.11 13160
903 컴퓨터잡담 Ahk Standard Library Collection, 2010 Sep (+Gui) ~ Libs: 100 3 2011.10.11 14189
902 AutoHotKey ahk) autohotkey controlgettext 이름을 마우스커서에 졸졸 따라다니게 하기 file 2014.04.01 12153
901 AutoHotKey ahk) autohotkey 글자 자르기 방법 2013.10.30 34636
900 AutoHotKey ahk) autohotkey 엑셀(Excel)에서 행값 증가시키기 2013.10.30 37410
899 AutoHotKey AHK) AUTOKEY 웹페이지 열지않고 소스 가져오기 또는 로그인 하기 14 2012.05.12 52944
898 AutoHotKey Ahk) ip할당 진단프로그램 file 2011.12.26 12118
Board Pagination Prev 1 2 3 4 5 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소