rclone에서 google 드라이브로 데이터 전송

※ 以下の設定内容は2019/4時点のものなので、情報が古い可能性がありますので、参考までにご参照いただけると幸いです

설치



Mac은 homebrew에서
brew install rclone

Tips



google drive에 대한 액세스 설정



google drive에 액세스하려면 두 가지 단계가 필요합니다.
· rclone을 OAUTH 클라이언트로 설정
· Drive 액세스 권한을 rclone에 OAuth로 전달합니다.

Google API Console에 로그인
新規プロジェクト作成(右上の「新しいプロジェクト」)
適宜、プロジェクト名を入力して「作成」
ページを更新したら左上を確認して、作成したプロジェクトが選択されているか確認する(複数のプロジェクトを作成している場合)

・作ったプロジェクトで Google drive api を有効にする。
RPI API →「API の概要に移動」→ 「+ API とサービスを有効化」
→ 「Google Drive API」→ 「有効にする」
→ 「(左メニューから)認証情報」
→ 「同意画面を設定」 → 「(アプリケーション名を適宜入力)」
→ 「作成」(名前が適当すぎると拒否される)


・作ったプロジェクトのoauthクライアントIDを作る
→ 「認証情報を作成」→ 「OAuth クライアント ID」
→ 「その他 にチェックを入れる」→ 「適宜、名前(OAuthクライアント名)を入力」→ 「作成」

・作ったプロジェクトのoauthシークレットを取り出す。
作成されたOAuth情報が表示されるので、
「クライアントID」 と 「クライアントシークレット」をコピーして控えておく。
→ 「OK」


누구의 Google 계정 API 권한으로
rclone을 움직일 것인가?
라는 설정

rclone 설정



콘솔에서 작업
$ rclone config

2019/04/21 06:05:40 NOTICE: Config file "$HOME/.config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config

# 新規なので n
n/s/q> n

이름 입력
name> basket_1



스토리지 유형 선택
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value

#12 / Google Drive
#   \ "drive"

#Storage> 12

** See help for drive backend at: https://rclone.org/drive/ **

최근 rclone를 업데이트하면 다음과 같이 스토리지 유형 번호가 변경되었으므로
12 / Google Cloud Storage (this is not Google Drive)
   \ "google cloud storage"
13 / Google Drive
   \ "drive"

GoogleDrive 설정을 하려면
13 선택
Storage> 13
ClientId복사한 메모에서 붙여넣기

ClientId 입력
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 string value. Press Enter for the default ("").
client_id>
クライアントシークレット복사한 메모에서 붙여넣기

클라이언트 비밀 입력
Google Application Client Secret
Setting your own is recommended.
Enter a string value. Press Enter for the default ("").
client_secret>

액세스 권한 선택
Scope that rclone should use when requesting access from drive.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value

 1 / Full access all files, excluding Application Data Folder.
   \ "drive"

scope> 1

이하, 특히 신경 쓰지 않으면 입력하지 않고 Enter

루트 디렉토리 ID 입력(지정된 디렉토리를 기본으로 하려면 설정)
ID of the root folder
Leave blank normally.
Fill in to access "Computers" folders. (see docs).
Enter a string value. Press Enter for the default ("").
root_folder_id>

# ディレクトリを開いた際にURLに表示されるID
サービスアカウント認証情報JSONファイルパス사용하지 않으므로 입력되지 않은 Enter

자격 증명 JSON 파일 경로(그대로 Enter)
Service Account Credentials JSON file path
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Enter a string value. Press Enter for the default ("").
service_account_file>

고급 설정을 할지 여부
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n

자동 인증 여부
Remote config
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> n

브라우저에서 인증 화면이 열리므로 화면 안내에 따라 Google 계정을 선택하고 진행합니다.

URL이 자동으로 열리므로 계정 로그인하여 ID를 확인한 후 입력합니다.
If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Log in and authorize rclone for access
Enter verification code>

팀인지 여부
Configure this as a team drive?
y) Yes
n) No
y/n> n

문제가 없다면 y에서 Enter

확인
[basket_1]
type = drive
client_id = xxxxxxxxxxxxxxxx
client_secret = xxxxxxxxxxxxxxxx
scope = drive
root_folder_id = xxxxxxxxxxxxxxxx
token = {"access_token":"xxxxxxxxxxxxxxxx","token_type":"xxxxxxxxxxxxxxxx","refresh_token":"xxxxxxxxxxxxxxxx","expiry":"2019-04-21T07:22:44.285574+09:00"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d>  y

다시 첫 화면이 표시되므로 q로 종료
Current remotes:

Name                 Type
====                 ====
basket_1          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
client_id공백이라도 좋다는 메시지가 나오지만, 이것을 공백으로 하면, 403 Rate Limite Exceeded로 고통받게 된다. 단적으로 말하면, rclone 를 사용하는 여러 사람과 클라이언트 ID를 공유하기 때문에, 전송 상한도 공유하게 되어, 상한이 되어 버리는 것일까요. → htps : // 기주 b. 코 m / n cw / rc ぉ 네 / 이스에 s / 1591


rclone 명령 사용



파일 표시



설정한 이름을 입력하여 파일을 볼 수 있는지 확인
(여기에서는 예에서 basket_1가 설정한 Gdrive의 명칭으로 한다)
#rclone ls 設定した名称:

rclone ls basket_1:

Google 드라이브의 공유 폴더로 복사



--drive-shared-with-me 옵션을 붙인다.
이것이 없으면 내 드라이브로 복사됩니다.

"./hoge.txt"를 Gdrive의 루트 디렉토리에 복사
rclone --drive-shared-with-me copy ./hoge.txt basket_1:

"./hoge.txt"를 공유 폴더 "shared_folder/"에 복사"
rclone --drive-shared-with-me copy ./hoge.txt basket_1:shared_folder/

로컬로 Google 드라이브에서 다운로드(복사)


rclone copy basket_1:hoge.txt $HOME/Desktop

우려



공개 웹 앱이 아니기 때문에 API로의 액세스가 100회 넘으면 사용할 수 없게 될지도.

사용할 수 없으므로 ID를 다시 등록하여 사용할 수있게했습니다.
횟수에 의한 것인지는 불명
우선 최악의 경우 재등록하면
서비스 자체는 반복적으로 이용 가능하다.

참고



rclone 명령을 사용하여 google 드라이브로 데이터 전송 (rclone 설치 방법 및 사용법) - 머그잔!
rclone을 사용하여 Google 드라이브 백업 - Qiita
Memo/Linux/rclone - DEX Lab
awk 사용법 - Qiita
Error listing directory, Google Drive - bug - rclone forum

좋은 웹페이지 즐겨찾기