Header

  1. View current page

    inocrazy님의 노트

Profile_img_60x60_01
5

SpringnoteFS

SpringnoteFS란?

Springnote Filesystem은 스프링노트를 저장공간으로 활용하여 mount 할 수 있는 LInux Filesystem입니다. 자신의 Springnote를 마운트한 후에 디렉토리 생성, 파일 복사, 삭제 등을 수행할 수 있습니다. Gmail을 저장공간으로 활용하는 GmailFS와 같은 프로그램입니다. 저작권 따위는 없으므로 마음대로 수정하셔서 사용하셔도 됩니다.

 

개발정보

 

요구사항

  • fuse
  • fusefs
  • springnote_resources

 

설치방법

  1. FUSE (Filesystem in Userspace) 라이브러리 설치   
  2. FuseFS 라이브러리 설치 
  3. springnote_resources gem 설치
  4. SpringnoteFS 설치

    SpringnoteFS를 다운 받은 후, 적당한 디렉토리에 압축을 풀어줍니다.

    (여기서는 /home/superkdk/springnotefs에 압축을 풀었다고 가정하고 설명토록 하겠습니다.)

 

사용방법

설정하기

springnotefs 홈디렉토리에 있는 springnotefs.yml 설정파일을 열어서, 자신의 스프링노트 도메인으로 변경합니다.

 

  1. # Configuration for Springnote.
    consumer_token: 9hPTazEKME8N26wF4wv8g
    consumer_secret: VNfPuvThRZObYJfZH1tJdD7trcXUs6vPUAojISMmq3M
    domain: springnotefs

 

스프링노트를 마운트할 디렉토리가 없다면 생성합니다. 여기서는 /home/superkdk/springnote에 마운트 시킨다고 가정하겠습니다.

 

마운트하기

shell에서 springnotefs.rb 스크립트를 실행합니다.

  1. $ ruby springnotefs.rb mount ~superkdk/springnote &

 

springnotefs.rb 스크립트의 사용법은 다음과 같습니다.

  1. $ ruby springnotefs.rb action mountpoint [configfile]
  2. action : mount | unmount
  3. mountpoint : mount 시킬 디렉토리입니다.
  4. configfile : springnote_resources에서 사용할 OAuth 관련 YAML 설정파일입니다. 기본값으로 springnote.yml로 설정됩니다.

 

다음은 springnotefs.rb 스크립트의 사용예제입니다.

  1. $ ruby springnotefs.rb mount /tmp/springnote      # /tmp/springnote에 마운트합니다.
  2. $ ruby springnotefs.rb unmount /mnt/springnote    # /mnt/springnote에 마운트된 것을 해제합니다.
  3. $ ./springnotefs.rb mount springnote springnote2.yml  # 현재 디렉토리의 springnote에 마운트하며, 설정파일로 springnote2.yml을 사용.

 

처음으로 마운트할 경우, OAuth 인증에서 access token을 받아오기 위해서 다음과 같은 내용이 보여질 것입니다.

  1. Open your browser and visit this url. Hit enter after login:
  2. https://api.openmaru.com/oauth/authorize?oauth_token=WnuGLZ0IVDdI0hBqL32nwg

 

해당 URL로 접근하셔서, 로그인을 하게되면 SpringnoteFS에서 access token을 받아올 수 있습니다. shel에서 엔터를 치면 마운트 과정이 완료되게 됩니다. 또한 사용자 편의를 위해서 access token을 받아온 후, .access_token 이라는 hidden file에 OAuth token 관련 정보를 저장해둡니다. 따라서 이 후 마운트부터는 위의 링크 표시가 나타나지 않습니다. 설정 파일이 변경되었을 경우에는 다시 access token을 받아오도록 되어있습니다.

 

마운트 해제하기

백그라운드로 돌고있는 마운트 명령을 fg로 불러온 후, Kill 시킵니다.

그 후 아래의 명령으로 마운트를 해제합니다.

  1. $ ruby springnotefs.rb unmount /home/superkdk/springnote

 

마운트된 파일시스템에 들어가 있는 경우, unmount시 오류 메시지를 발생시킵니다.

파일시스템에서 나온 후, unmount합니다.

 

구현 기능

디렉토리 구조

자신의 스프링노트의 노트 구조가 파일시스템으로 매핑됩니다. 하나의 페이지는 디렉토리로 간주되며, 따라서 그 페이지의 서브 페이지들은 서브 디렉토리가 됩니다. 페이지 내의 첨부파일들은 해당 디렉토리 내의 파일로 보여집니다.

 

디렉토리 생성 및 삭제

mkdir, rmdir 명령을 사용하여 디렉토리를 생성, 삭제할 수 있습니다. 디렉토리가 생성될 때마다 해당 위치의 스프링노트 페이지가 생성되게 됩니다. 해당 페이지의 내용은 디렉토리 내의 .source 파일에서 확인하실 수 있습니다.

 

파일 추가 및 삭제

cp, mv, rm 명령 등으로 특정 디렉토리에 파일을 복사하거나 삭제할 수 있습니다. 디렉토리에 추가된 파일은 해당 페이지에 첨부파일로서 저장되게 됩니다.

주의사항 : FuseFS의 제약으로 mv 명령어는 파일을 복사한 후, 삭제하는 방식으로 진행됩니다. 따라서 사용시 주의하시기 바랍니다.

 

참조

History

Last edited on 11/18/2008 23:24 by inocrazy

Comments (0)

You must log in to leave a comment. Please sign in.