라즈베리파이에 구글드라이브 연동
라즈베리 파이에서 rclone을 사용한 구글 드라이브 연동 가이드
라즈베리 파이에서 구글 드라이브를 사용하기 위해서는 rclone
이라는 도구를 사용하는 것이 일반적. 아래는 rclone
을 설치하고 구글 드라이브와 연동하는 과정과 전송 속도 문제를 해결하는 방법을 정리한 글.
1. rclone 설치 및 설정
1.1 rclone 설치
먼저, rclone
을 설치.
1
2
sudo apt-get update
sudo apt-get install rclone
1.2 rclone 구성
rclone config
명령어를 사용해 구글 드라이브와의 연결을 설정.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
rclone config
jiwoon@raspberrypi:~ $ rclone config
Current remotes:
Name Type
==== ====
gdrive drive
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> d
Select remote.
Choose a number from below, or type in an existing value.
1 > gdrive
remote> gdrive
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
Enter name for new remote.
name> gdrive
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
1 / 1Fichier
\ (fichier)
2 / Akamai NetStorage
\ (netstorage)
3 / Alias for an existing remote
\ (alias)
4 / Amazon Drive
\ (amazon cloud drive)
5 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, China Mobile, Cloudflare, ArvanCloud, Digital Ocean, Dreamhost, Huawei OBS, IBM COS, IDrive e2, IONOS Cloud, Lyve Cloud, Minio, Netease, RackCorp, Scaleway, SeaweedFS, StackPath, Storj, Tencent COS, Qiniu and Wasabi
\ (s3)
6 / Backblaze B2
\ (b2)
7 / Better checksums for other remotes
\ (hasher)
8 / Box
\ (box)
9 / Cache a remote
\ (cache)
10 / Citrix Sharefile
\ (sharefile)
11 / Combine several remotes into one
\ (combine)
12 / Compress a remote
\ (compress)
13 / Dropbox
\ (dropbox)
14 / Encrypt/Decrypt a remote
\ (crypt)
15 / Enterprise File Fabric
\ (filefabric)
16 / FTP
\ (ftp)
17 / Google Cloud Storage (this is not Google Drive)
\ (google cloud storage)
18 / Google Drive
더잇음
Storage> 18
Option client_id.
Google Application Client Id
Setting your own is recommended.
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
If you leave this blank, it will use an internal key which is low performance.
Enter a value. Press Enter to leave empty.
client_id>
Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret>
Option scope.
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
1 / Full access all files, excluding Application Data Folder.
\ (drive)
2 / Read-only access to file metadata and file contents.
\ (drive.readonly)
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
\ (drive.file)
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
\ (drive.appfolder)
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
\ (drive.metadata.readonly)
scope> 1
Option service_account_file.
Service Account Credentials JSON file path.
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Leading `~` will be expanded in the file name as will environment variables such as `${RCLONE_CONFIG_DIR}`.
Enter a value. Press Enter to leave empty.
service_account_file>
Edit advanced config?
y) Yes
n) No (default)
y/n>
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes (default)
n) No
y/n> n
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "drive" "임의의문자"
Then paste the result.
Enter a value.
config_token> "받아온토큰입력"
Configure this as a Shared Drive (Team Drive)?
y) Yes
n) No (default)
y/n>
Configuration complete.
Options:
- type: drive
- scope: drive
- token: {}
- team_drive:
Keep this "gdrive" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d>
Current remotes:
Name Type
==== ====
gdrive drive
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q
n
을 눌러 새로운 원격(remote) 연결을 만듦.- 연결 이름을 입력. 예:
gdrive
- 클라우드 스토리지 유형으로
Google Drive
를 선택. - 클라이언트 ID와 비밀 키를 입력하라는 메시지가 표시되면 기본값을 사용.
- 인증 URL이 생성되면 해당 URL을 웹 브라우저에 복사해 구글 계정으로 로그인하고, 인증 코드를 터미널에 입력.
- 나머지 설정은 기본값을 사용.
- 설정이 완료되면
rclone lsd gdrive:
명령어로 구글 드라이브의 폴더 목록을 확인할 수 있다.
2. 토큰 인증 과정에서 발생한 문제 해결
라즈베리파이가 cli라서 웹으로 안가짐. 그래서 윈도우에서 토큰을 받아오려고했음.
2.1 동일한 rclone 버전 사용
라즈베리 파이와 인증에 사용할 다른 장치(예: Windows)에서 동일한 버전의 rclone
을 사용. rclone
공식 사이트에서 최신 버전을 다운로드하여 사용.
다운로드사이트 만약 아래처럼 화면이 안보일시 다른 브라우저 사용!
2.2 PowerShell을 이용한 인증
Windows의 PowerShell 관리자 모드에서 아래 명령어를 사용해 구글 드라이브 인증을 완료.
1
2
PS C:\Users\user123\Downloads\rclone-v1.67.0-windows-amd64> .\rclone.exe authorize "drive" "임의의 문자"
- 웹 브라우저가 자동으로 열리며 구글 계정 인증을 진행.
- 인증이 완료되면 PowerShell에 표시된 토큰을 복사해 라즈베리 파이의 터미널에 입력.
근데 나는 client id랑 key오류 나서 rclone 삭제햇다가 다시 구글연동했음 rclone config에 -d 옵션으로 삭제 후 -n 으로 새롭게 만듦
3. rclone 명령어 사용
구글 드라이브와의 연동이 완료되면, 다음 명령어를 사용하여 파일을 관리할 수 있음.
3.1 원격 드라이브의 파일 목록 확인
1
2
rclone ls gdrive:
3.2 구글 드라이브의 폴더 구조 확인
1
2
rclone lsd gdrive:
3.3 특정 파일 또는 폴더 다운로드
1
2
rclone copy gdrive:path/to/remote/file /path/to/local/directory
3.4 로컬 파일을 구글 드라이브에 업로드
1
2
rclone copy /path/to/local/file gdrive:path/to/remote/directory
명령어 부분 설명
/path/to/local/file
: 로컬 컴퓨터에 있는 파일의 경로를 의미. 이 부분을 실제로 복사하려는 파일의 경로로 바꿔야 함.- 예를 들어, 로컬에 있는
example.txt
파일을 업로드하려는 경우, 파일이home/pi/Documents/example.txt
에 있다면, 이 부분을~/Documents/example.txt
로 바꾸기.
- 예를 들어, 로컬에 있는
gdrive:path/to/remote/directory
: 구글 드라이브의 원격 디렉토리 경로를 의미. 이 부분을 파일을 복사하려는 구글 드라이브의 디렉토리 경로로 변경해야 함.- 예를 들어, 구글 드라이브의
MyDrive/Backup/
폴더에 파일을 업로드하려는 경우, 이 부분을gdrive:Backup/
으로 바꾸기.
- 예를 들어, 구글 드라이브의
예시 명령어
예를 들어, 로컬의 /home/jiwoon/gdrive/
폴더에 있는 text.txt
파일을 구글 드라이브의 raspberrypi
폴더로 복사하려면 다음과 같이 명령어를 입력하면 됨:
1
2
rclone copy /home/jiwoon/gdrive/text.txt gdrive:raspberrypi/
4. rclone 전송 속도 문제 해결
rclone
을 사용해 파일을 전송할 때 속도가 느려지는 문제의 원인과 해결 방법.
4.1 인터넷 속도 확인
speedtest-cli
를 사용해 라즈베리 파이의 인터넷 속도를 확인.
1
2
3
sudo apt-get install speedtest-cli
speedtest-cli
4.2 rclone 설정 조정
청크 크기를 조정하여 전송 속도를 개선할 수 있다.
1
2
rclone copy /home/jiwoon/gdrive/text.txt gdrive:raspberrypi/ --drive-chunk-size=64M
또한, 동시에 전송할 파일 수를 늘려 전송 속도를 개선할 수 있다.
1
2
rclone copy /home/jiwoon/gdrive/text.txt gdrive:raspberrypi/ --transfers=8
4.3 백그라운드 작업 확인
라즈베리 파이에서 리소스를 많이 사용하는 작업을 중지하여 rclone
전송 속도를 높일 수 있다.
전채 요약
rclone
설치 및 구글 드라이브 연동:rclone
을 설치하고 설정하여 라즈베리 파이에서 구글 드라이브를 사용할 수 있음.- 토큰 인증 문제 해결: 동일한
rclone
버전을 사용하고, Windows의 PowerShell을 이용해 인증 과정을 완료할 수 있음. - 파일 전송 및 관리: 다양한
rclone
명령어를 사용해 구글 드라이브와 파일을 주고받을 수 있음. - 전송 속도 문제 해결: 청크 크기 조정, 동시 전송 파일 수 증가 등을 통해 전송 속도를 개선할 수 있음.