cheditor스킨에서 cafe24의 CDN 서비스 이용하기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

cheditor스킨에서 cafe24의 CDN 서비스 이용하기 정보

cheditor스킨에서 cafe24의 CDN 서비스 이용하기

본문

질문답변코너의 불당님의 질문으로 접근해본 cafe24의 CDN 서비스 이용하기
http://www.sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=37839
http://www.sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=37934


사용을 위한 조건
    1. cafe24의 image CDN 서비스를 사용할수있어야 한다.
    2. cheditor 에서 제공하는 기능으로 이미지 업로드시에 적용된다.
      (그누보드에서 제공하는 이미지 업로드는 해당사항없음)


수정파일 :
    $g4_path/cheditor/insert_image.php

수정전 :
    if ($success) {
        $filename = $save_as_url . $attach->file['name'];

수정후 :
    if ($success) {

        $ncftp_info = "/usr/bin/ncftpput -u 아이디 -p 비밀번호 -m -DD iup.cdn1.cafe24.com ";
        $remote_dir = "/www/$g4[editor]/$ym/ ";
        $local_file = $save_as_url . $attach->file['name'];
        $ncftp_cmd = $ncftp_info . $remote_dir . $local_file;
        system($ncftp_cmd, $status);

        // ncftp에서 -DD 옵션을 사용했으므로 파일의 유무에 따라서 성공여부 결정
        if(!file_exists($local_tmp)) {
            $save_as_url = "http://아이디.cdn1.cafe24.com/$g4[editor]/$ym/";
        }

        $filename = $save_as_url . $attach->file['name'];


## CDN(Contents Delivery Network) 호스팅이란
  여러곳의 IDC 또는 여러대의 ISP에 동일한 컨텐츠를 올려놓고,
  접속자가 사용하는 인터넷회선의 종류에 따라 가장 가까운 곳에서
  컨텐츠를 불러들일 수 있도록 지원하는 서비스입니다. (cafe24의 설명)
  http://hosting.cafe24.com/cdn/cdn_define.php


## ncftpput의 간략설명
NcFTPPut 3.1.8

Usages:
  ncftpput [flags] remote-host remote-dir local-files...  (mode 1)
  ncftpput -f login.cfg [flags] remote-dir local-files...  (mode 2)
  ncftpput -c remote-host remote-path-name < stdin  (mode 3)

Flags:
  -u XX  Use username XX instead of anonymous.
  -p XX  Use password XX with the username.
  -P XX  Use port number XX instead of the default FTP service port (21).
  -j XX  Use account XX with the account (deprecated).
  -d XX  Use the file XX for debug logging.
  -e XX  Use the file XX for error logging.
  -U XX  Use value XX for the umask.
  -t XX  Timeout after XX seconds.
  -a    Use ASCII transfer type instead of binary.
  -m    Attempt to mkdir the dstdir before copying.
  -v/-V  Do (do not) use progress meters.
  -f XX  Read the file XX for host, user, and password information.
  -c    Use stdin as input file to write on remote host.
  -A    Append to remote files instead of overwriting them.
  -z/-Z  Do (do not) try to resume uploads (default: -Z).
  -T XX  Upload into temporary files prefixed by XX.
  -S XX  Upload into temporary files suffixed by XX.
  -DD    Delete local file after successfully uploading it.
  -b    Run in background (submit job to "ncftpbatch" and run).
  -bb    Same as "-b" but queue only (do not run "ncftpbatch").
  -E    Use regular (PORT) data connections.
  -F    Use passive (PASV) data connections (default).
  -y    Try using "SITE UTIME" to preserve timestamps on remote host.
  -B XX  Try setting the SO_SNDBUF size to XX.
  -r XX  Redial XX times until connected.
  -o XX  Specify miscellaneous options (see documentation).
  -W XX  Send raw FTP command XX after logging in.
  -X XX  Send raw FTP command XX after each file transferred.
  -Y XX  Send raw FTP command XX before logging out.
  -R    Recursive mode; copy whole directory trees.

Examples:
  ncftpput -u gleason -p my.password Elwood.probe.net /home/gleason stuff.txt
  ncftpput -u gleason Elwood.probe.net /home/gleason a.txt (prompt for pass)
  ncftpput -a -u gleason -p my.password -m -U 007 Bozo.probe.net /tmp/tmpdir a.txt
  tar cvf - /home | ncftpput -u operator -c Server.probe.net /backups/monday.tar

Library version: LibNcFTP 3.1.8 (May 26, 2004).

This is a freeware program by Mike Gleason (http://www.ncftp.com).
This was built using LibNcFTP (http://www.ncftp.com/libncftp/).
추천
2

댓글 17개

기본 traffic이 10G인 경우 CDN으로 10G 트래픽을 줍니다. 합치면 트래픽이 20G인데 CDN을 못써서 더 높은
사양의 서비스로 옮기는 경우가 많답니다. CDN을 쓰면 월 2만2천원짜리 서비스로 3만3천원 효과를 얻을 수
있는 것이죠.

CDN은 간단히 말하면 용량이 큰 컨텐츠를 내 서버가 아닌 ISP(하나로,KT, 파워콤 등)의 망에 접속해두고
그곳에서 컨텐츠를 download해주는 서비스 입니다. 그러면 사용자는 빠르게 대용량의 컨텐츠가 내려오고
서버 운영자는 서버에 가해지는 부담을 줄일 수 있고 ISP는 망을 가로지르는 큰 용량의 데이터를 줄일 수가
있기 때문 입니다.
*^^* root님 덕분에 어려운 문제를 풀 수 있었어요. 도움주셔서 에쿠스님 FAQ 스킨도 고쳤구요 *^^*

그런데, 용량이 아주 큰 그림파일들을 file attach를 쓰는 분들도 많더라구요. 지금은 가끔씩 log를 보고
용량을 줄여주는 작업을 하지만 그것도 매일 할 수 없으니 참 번거롭고 어렵네요. -..-a

파일첨부를 하는 경우에도 CDN을 이용하는 방법을 쓰면 프로그램을 배포하거나 사진 이미지가 많은
사이트의 경우 아주 많이 유용할 것 같습니다.

업로드를 할 때는 비슷하게 수정을 하고 ...
글보기를 할 때 view.skin.php에서 wr_cdn1이 1이면 $view[file]의 서버를 cdn으로 벼꿔서
파일이 존재하는지 확인해서 존재하면 로딩하고 아니면 $view[file]을 로딩 하면 되지 않을까요???
직접적으로 CDN을 운영하는걸까요? 제 생각엔 CDN전문업체와 제휴로 하지 않을까 싶은데..
앞으로 CDN이 일반적인 상황으로 갈지도 모르겠습니다만...

CDN호스팅이라 머리 좋군요.
rsync 명령을 쓰면 간단히 data를 다른 서버로 sync 시킬 수 있는데, cafe24에서는 못쓰게 했더군요
일반 사용자들이 쓰면 시스템에 무리가 간다고 ... -.-a
일반 업로드라 하심은 ?
그누보드의 스킨에있는 업로드 말씀이신가요?
그렇다면 그부분은 처리되지 않습니다.

위 소스는  cheditor에 있는 업로드 부분만 수정한것입니다.
참고로 cheditor 스킨에서 수정/삭제시에 이미 올라간 이미지는 삭제처리되지 않습니다.

ps. 일반스킨의 업로드에 대해서 CDN 서비스를 이용하기를 적용한다면
    입력/수정/삭제시에 이미지 처리에대한 부분이 현재 그누보드 기본 로직과 부함되어야 한다고 생각되는데
    이부분이 검토되지 않아서 작업하지 않았습니다.
    위에대한 로직을 점검하자면 위의 단순한 업로드로 처리하는것보다 좀더 복잡하고 긴 시간이 필요할듯 합니다. ^^
전체 35 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT