라즈베리파이 드롭박스 싱크하기

Updated:

라즈베리파이에서 클라우드 서비스인 드롭박스와 연동해보도록 하겠습니다. 라즈베리파이가 드롭박스와 연동이 되면, 주기적으로 카메라로 사진을 찍어서 업로드하고 클라우드 서비를 통해 다른 컴퓨터에서 사진을 볼 수 있습니다. 여러가지 다른 활용법도 더 가능합니다. 그럼 이제 드롭박스 연결을 해보겠습니다.

1. 드롭박스는?

드롭박스는 클라우드 서비스 중 하나입니다. 다른 서비스들에 비해 안정적이고, 다양한 지원을 제공한다고 알려져있습니다. 가격이 단점인데, 개인용 유료서비스가 1TB 부터 시작해서 월 8.25달러입니다. 무료서비스는 기본 제공 용량이 2GB 입니다. 추가 무료 용량 받는 방법은 드롭박스 무료 용량 늘리기를 참고하세요. 무료 계정은 크지 않은 용량으로 개인 문서 등만 저장할 수 있는 수준입니다.

2. 드롭박스 싱크 스크립트 준비

드롭박스는 윈도우, MAC, 우분투 OS 등에서 다양하게 싱크 어플리케이션을 제공하고 있습니다. 다만, 라즈베리파이용 공식 어플리케이션은 제공하고 있지 않습니다. 따라서 개발자 API를 사용하는 방법을 사용하여야 합니다. 이탈리안 개발자 Andrea Fabrizi가 개발자 API를 이용하는 쉘스크립트를 개발하였습니다. Dropbox Uploader 프로젝트 페이지에 프로젝트 소개가 되어 있습니다.

쉘 스크립트는 아래 git 주소로 공개 되고 있습니다. 아래와같이 git clone으로 스크립트를 다운로드 합니다.

#!/bin/bash
pi@raspberrypi:~ $ git clone https://github.com/andreafabrizi/Dropbox-Uploader.git
Cloning into 'Dropbox-Uploader'...
remote: Counting objects: 945, done.
remote: Total 945 (delta 0), reused 0 (delta 0), pack-reused 945
Receiving objects: 100% (945/945), 316.15 KiB | 0 bytes/s, done.
Resolving deltas: 100% (502/502), done.
pi@raspberrypi:~ $

다운로드 받고 스크립트를 실행하면, 초기 설정 가이드가 등장합니다. 드롭박스 API를 사용하기 때문에 개인용 API tokon이 필요합니다. 따라서 스크립트 실행 전에 먼저 드롭박스 사이트에 token을 받으러 갑니다.

3. 드롭박스 APP 및 토큰 얻기

드롭박스 토근을 생성하기 위해서 드롭박스 개발자 사이트로 접속합니다. 개발자 사이트에서 Create App 메뉴를 선택합니다.

Dropbox create app

그리고, 1번 항목은 Dropbox API를 선택합니다. 2번 항목은 싱크 타입을 선택하는데, 딱히 목적이 없다면 Full Dropbox를 선택해서 전체 폴더에 접근할 수 있도록 합니다. 3번 항목은 앱의 이름인데 고유한 아이디 역할을 해서 이미 생성된 이름은 중복으로 생성이 불가능하고, dropbox 단어도 포함하면 안됩니다.

Create new app

이제 앱을 생성하면, 아래와같이 생성된 앱의 정보가 나옵니다. 여기서 Generated access token을 복사하면 됩니다. token 값은 드롭박스에 접근할 수 있는 키가 되니, 다른 유저와 공유하면 안됩니다.

Dropbox app token

다시 쉘스크립트를 실행해서 복사해둔 token을 붙여넣어줍니다. 이제 모든 설정은 완료되었습니다.

#!/bin/bash
pi@raspberrypi:~/Dropbox-Uploader $ ./dropbox_uploader.sh

 This is the first time you run this script, please follow the instructions:

 1) Open the following URL in your Browser, and log in using your account: https://www.dropbox.com/developers/apps
 2) Click on "Create App", then select "Dropbox API app"
 3) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder
 4) Enter the "App Name" that you prefer (e.g. MyUploader86321667419197)

 Now, click on the "Create App" button.

 When your new App is successfully created, please click on the Generate button
 under the 'Generated access token' section, then copy and paste the new access token here:

 # Access token: H0wfmOf_rgAAAAAAAAAMcHTM5pstxyAAAAAAAckxv-BpkzHE104RxY7PfAAAAAAA

 > The access token is H0wfmOf_rgAAAAAAAAAMcHTM5pstxyAAAAAAAckxv-BpkzHE104RxY7PfAAAAAAA. Looks ok? [y/N]: y
   The configuration has been saved.
pi@raspberrypi:~/Dropbox-Uploader $

4. 스크립트 실행하기

이제 스크립트를 실행해 볼 시간입니다. 아래처럼 info 옵션으로 계졍 정보가 나타나면 드롭박스 연동에 성공한 것입니다.

#!/bin/bash
pi@raspberrypi:~/Dropbox-Uploader $ ./dropbox_uploader.sh info
Dropbox Uploader v1.0

 > Getting info...

Name:		geek different
UID:		dbid:AAAAAAABIu1w0kN2AAAAArPHhMfzjfBcQXg
Email:		geekdifferentidea@gmail.com
Country:	KR

pi@raspberrypi:~/Dropbox-Uploader $

스크립트를 사용하여 파일 다운로드와 업로드 명령을 같이 확인해보겠습니다. list 명령어는 드롭박스의 파일과 폴더를 나열합니다. 뒤의 옵션으로 확인할 경로를 지정할 수 있습니다. list 명령어로 dropbox_download.txt 파일을 확인했으니, download 명령어로 파일을 다운로드 해봅니다. 옵션에는 다운로드 할 파일-다운로드할 경로 순으로 기재합니다.

#!/bin/bash
pi@raspberrypi:~/Dropbox-Uploader $ ./dropbox_uploader.sh list /
 > Listing "/"... DONE
 [D]    temp
 [F] 19 dropbox_download.txt
pi@raspberrypi:~/Dropbox-Uploader $ ./dropbox_uploader.sh download /dropbox_download.txt .
 > Downloading "/dropbox_download.txt" to "/home/pi/Dropbox-Uploader/dropbox_download.txt"... DONE

이번에는 반대로 upload를 실행합니다. upload 명령어 뒤에 업로드 할 파일-업로드할 드롭박스 경로 순으로 기재합니다. 업로드 후에 list 명령어로 드롭박스에 업로드 된 것을 확인할 수 있습니다.

#!/bin/bash
pi@raspberrypi:~/Dropbox-Uploader $ ./dropbox_uploader.sh upload dropbox_upload.txt /
 > Uploading "/home/pi/Dropbox-Uploader/dropbox_upload.txt" to "/dropbox_upload.txt"... DONE
pi@raspberrypi:~/Dropbox-Uploader $ ./dropbox_uploader.sh list /
 > Listing "/"... DONE
 [D]     temp
 [F] 19  dropbox_download.txt
 [F] 141 dropbox_upload.txt
pi@raspberrypi:~/Dropbox-Uploader $

드롭박스에 업로드와 다운로드는 폴더 단위로도 가능합니다. 개발자의 Dropbox Uploader 프로젝트 페이지에 스크립트의 사용법이 자세히 설명되어 있습니다.


더 많은 라즈베리파이 이야기 Pi Guide 보러가기


Leave a Comment