Pydio - HubiC간 연결하기(SVFS)

그동안 HubiC 서비스는 그 API의 한계로 다양한 앱이 나오지 못했습니다. 실제로 이번 글에서 다룰 SVFS는 OVH 공식 서비스임에도 불구하고 폴더 이동이 불가능 하다던가 하는 여러가지 제약이 있습니다.
아무튼 이러한 한계로 인해 일부 유료 앱에서만 지원하고, 무료 앱은 업데이트가 늦다던가(그나마 619.io 에서 Swift Explorer라고 하는 HubiC을 Swift 스토리지로써 연결해 파일 전송을 지원하는 기능이 존재합니다. 다만 여타 다른 HubiC 클라이언트처럼 느립니다. 이는 HubiC 공식 앱과는 다른 부분입니다.) 지원이 빈약한 부분이 존재합니다.
천만 다행으로, HubiC은 Linux Client를 CLI지만 지원하며, OVH가 클라우드 업체인 덕에 OVH Public Storage와 함께 몇 가지 기능을 공통적으로 지원하고 있는 부분이 존재합니다.
그동안 Pydio, SeaFile, OwnCloud 및 일반 리눅스 클라이언트에서 접속하기 위한 여러가지 노력이 있었고, 이를 통해 CloudFuse, HubicFuse 등이 Github에서 개인 프로젝트로 공개되었으나 2015년 이후 HubiC의 사용자수가 급감하면서 업데이트 또한 끊겨 이용할 수 없는 상황에 다다랐습니다.
그런데 이를 계속 잇기라도 하듯, OVH 측에서 진짜배기 가상 마운트 프로그램을 공개했습니다. OVH Public Storage와 HubiC을 공통으로 지원합니다. 이름은 SVFS(Swift Virtual File System)으로, 이름 그대로 OVH에서 사용하는 Openstack Swift 지원을 이용하여 만들어진 프로그램입니다.

2017.07.20에 마지막 기여가 있었네요. 2017년 11월 2일 기준 최신버전인 0.9.1은 2016년 12월에 나왔습니다.
지원 플랫폼은 다윈 커널(macOS), 리눅스(데비안 계열,레드햇 계열 및 소스코드 지원)로, 다음과 같은 설치 패키지를 받을 수 있습니다.
i386(32비트)/amd64(64비트) macOS용 설치 패키지 - *.pkg
32비트/64비트/armhf/armel 데비안/우분투/리눅스 민트 및 elementary OS 등에 사용할 수 있는 리눅스 설치 패키지 - *.deb
32비트/64비트 RHEL&Cent OS/페도라/openSUSE&SUSE Enterprise Linux/마제야/OpenMandriva Lx/아시아눅스&Miracle Linux 등에 사용할 수 있는 리눅스 설치 패키지 - *.rpm
소스코드 - *.zip / *.tar.gz
각 아키텍쳐별로 나뉘어져 있는데 일반 x86과 amd64는 물론이고 ARM까지 지원해 라즈베리파이에서 사용할 수 있었습니다.(만세!) 다만 데비안 계열만 지원하므로 Raspbian, Ubuntu(Snappy Core 제외), Ubuntu MATE와 같이 deb 패키지를 설치할 수 있는 환경이어야 쉽게 설치할 수 있습니다. 물론 세간에는 deb←→rpm간 변환 프로그램도 있지만, 귀찮고 불안정하기 때문에 그닥 추천 드리진 않습니다. 원한다면 바이너리나 소스코드를 받아 써도 됩니다.
라즈베리파이의 경우 armhf 패키지 이므로(요즘 스마트폰이나 개발보드는 일반적으로 armhf로 나옵니다. 따라서 바나나파이나 오드로이드에서도 armhf 패키지를 사용하셔야 합니다.) 빨리 받아 넣어줬습니다.
이때 SFTP 등으로 다운받고 서버에 올려줄 수도 있지만, Github에선 친절하게도 직접 링크를 주므로 wget을 이용할 수 있습니다.

cd (원하는 폴더)
wget https://github.com/ovh/svfs/releases/download/v0.9.1/svfs_0.9.1_armhf.deb
2017년 10월 기준이며, 2016년 12월에 출시된 버전입니다. 버전을 이전버전이나 이후 출시된 최신버전으로 바꾸고자 할 경우엔 v0.9.1과 svfs_0.9.1_armhf 부분의 숫자를 알맞은 버전명으로 바꿔주세요.

그 후 이렇게 내려받고 설치를 해줘야 하는데,

dpkg -i svfs_0.9.1_armhf.deb

이 명령어로 설치시 경우에 따라 설치 시도하면 의존성이 맞지 않는다고 경고해주므로 필요한 꾸러미를 설치하시면 됩니다만, 먼저 두가지 의존 꾸러미가 있습니다.
ruby, fuse
이는 일단 Fuse를 기반으로 만들었기 때문이고, Ruby 언어로 작성되어있기 때문인 듯 합니다.(저도 잘은 모릅니다. 확실한 건 Fuse 기반입니다.)
귀찮으시다면 GUI 환경이 설치되어있다는 가정 하어 GDebi나 우분투 소프트웨어 센터로 연결되도록 연결 프로그램을 지정하셔서 설치하셔도 잘 됩니다.
이미 Ruby와 Fuse가 설치 상태다! 하시는 분은 명령어를 입력했을 때 별 문제없이 설치 되실 겁니다.

설치 후 작업해줄 것이 있습니다.

먼저 hubiC 웹사이트에 접속하여 로그인합니다.

My Account → Developers 를 고릅니다.
Add an application을 선택합니다.

Redirect URI는 http://localhost/ (혹은 자기가 원하는 것으로)로 설정합니다. 이름은 Hubic을 넣지 않는다면 가이드라인에 위배되지 않는다고 하네요.

다 생성하고 나면 ID와 Client Secret 키가 나옵니다.
이 두 키를 복사해 줍니다.(Evernote, OneNote, Keep, Wunderlist, S메모 등에 적어두시면 좋습니다.)

명령어로 hubic-application을 입력합니다.
이미 개발자 앱 등록을 마쳤으므로 y를 누르고, ID와 secret key를 붙여 넣습니다. 일일히 치기 어려우므로 복사, 붙여넣기가 쉬운 SmarTTY(Windows/macOS/Linux)나 JuiceSSH(Android)등을 이용하시는 걸 추천드립니다.
참고로 client_secret의 경우 암호 입력할 때 처럼 글자가 나타나지 않으므로 붙여넣은 후 엔터를 치면 다음 단계로 넘어가시면 됩니다.

그러면 이렇게 Setting Scope...가 뜨고, 이후 아이디와 비밀번호를 물어봅니다.
여기서 hubiC 계정으로 로그인 하면, 알아서 입력에 필요한 hubic_auth값과 hubic_token 값이 발급되어 나타납니다. 해당 값을 복사하여 아까처럼 메모해두셔야만 이따가 편합니다.
그리고 다음과 같이 입력해 줍니다.

cat /etc/passwd

여기서 각 계정 별 고유 번호가 나올 텐데(계정명:x:고유 계정 번호1:고유계정번호2 순입니다.)이를 기억해 둡니다. 여기서 기억한 번호의 계정이 hubiC을 마운트한 주인이 될 겁니다.

mount -t svfs -o hubic_auth=(아까 받은 값- 맨 끝에 =을 포함하는 경우가 있어도 끝까지 적어줍니다.),hubic_token=(아까 받은 토큰 값),container=default,default_perm=false,umask=0022,gid=33,uid=33 hubic (마운트할 폴더명)

여기서 값을 해설하면 다음과 같습니다.
-t svfs : SVFS 파일 시스템으로 마운트합니다.
-o : 옵션을 지정합니다.
default_perm=false : mount 명령어에 포함된 기본 권한 설정을 무시합니다.
umask=0022 : 권한을 0777로 설정합니다.(chmod 기준)
gid=33, uid=33 : gid=(고유계정번호 1), uid=(고유계정번호 2)
hubic: 디스크 명을 hubic으로 합니다.

이렇게 마운트 하시면 가상 드라이브가 완성됩니다. Pydio로 연결하실 때에는 (Pydio 설치폴더)/data/personal/(유저명)에 폴더를 하나 만들어 거기에 마운트하라고 폴더를 지정해 주시면 됩니다.
다만 OVH측에서 걸어놓은 제한이 몇가지 있는데, 다음과 같습니다.

- O_CREAT, O_RDONLY, O_WRONLY 모드 외에는 사용할 수 없음.
- 폴더 이동 불가
- 이름 변경 불가
- SLO 사용 불가(단, DLO는 사용가능)
- 마운트 지점에서만 권한 설정 가능하고 파일마다 각각 권한 설정 불가능.
- 심링크를 다른 컨테이너에 생성할 수 없음(내부에선 사용가능.)

이렇게 하고 나면 Pydio에는 이렇게 잘 나옵니다.

불편하지만 기존에 나와있던 cloudfuse 및 hubicfuse에서 있던 안정성 문제는 괜찮은 편이라 당분간은 이 방법을 쓰시는 게 좋을 것 같습니다.

* 본 글에는 오류가 있을 수 있습니다. 이에 대해서 지적해 주시면 빠른 시일 내에 고치겠습니다. 트위터 멘션 및 댓글을 이용해 주세요.

티스토리 툴바