2021 Jun. 05.
出典 Linuxでのrcloneの使い方 | アプリ開発ときどきアウトドア
rcloneパッケージをインストールする
googleドライブへの認証のためのクライアントIDとクライアントシークレットを取得する
Google API Console( https://console.developers.google.com/ )にログインして下記を行う
以下は Linuxでのrcloneの使い方 | アプリ開発ときどきアウトドア からの書き写し
プロジェクトの作成
[プロジェクトを作成]をクリックする。
任意のプロジェクト名を指定して[作成]をクリックする。
Google Drive APIの有効化
[APIとサービスの有効化]をクリックします。
[Google Drive API]を選択し、[有効にする]をクリックする。
OAuth2同意画面の構成
画面左メニューの[認証情報]をクリックし、[同意画面を構成]をクリックする。
表示された[OAuth同意画面]で、[外部]を選択し[作成]をクリックする。
※組織内ユーザは想定していないため[外部]を選択しています。
表示された[アプリ登録の編集]画面で、必須項目を入力し[保存して次へ]をクリックする。
アプリ名: rclone
ユーザーサポートメール: (googleアカウントに対応するメールアドレスを選択)
メールアドレス: (任意のメールアドレス)
※ここではテストではなく本番として公開する想定なので、途中の「テストユーザの追加」等のテスト用の設定は無視します。
(メイン画面にはさわらず)画面左メニューの[OAuth同意画面]をクリックし、[公開ステータス]の[アプリを公開]をクリックする。
(「Googleアカウントを持つ全てのユーザーがアプリを利用できるようにします。」を字面通りに読むと危険に思えるかもしれませんが、このアプリを使用するためにはこの後発行されるクライアントIDとシークレットを知る必要があるのと、そのアプリを介して認証したユーザのGoogleドライブが見えるようになるだけなので、実質的に自分しかアクセスできません。)
OAuth2クライアントの登録
画面左メニューの[認証情報]をクリックし、[認証情報の作成]の[OAuthクライアントID」をクリックします。
表示された[OAuthクライアントIDの作成]画面で次を入力し、[作成]をクリックします。
[アプリケーションの種類]: [デスクトップアプリ]
[名前]: (任意)
OAuthクライアントが作成され、クライアントIDとシークレットが表示されるので、どこかに控えます。
(画面左メニューの[認証情報]の[OAuth2.0クライアントID]から対象のOAuthクライアントをクリックして、クライアントIDとシークレットを確認することもできます。)
初期設定とgoogleドライブ認証許可取得
$ cd
$ rclone config
No remotes found - make a new one
n/s/q> n
name> XXXX(任意) ## コマンドラインでのgoogleドライブのルートの名称となるので長いと不便
Type of storage to configure.
Storage> drive
Google Application Client Id
client_id> (Google API Consoleで取得したクライアントID)
OAuth Client Secret
client_secret>(Google API Consoleで取得したクライアントシークレット)
Scope that rclone should use when requesting access from drive.
scope> 1
ID of the root folder
root_folder_id> (Enter) 何も入力しない
Service Account Credentials JSON file path
service_account_file> (Enter) 何も入力しない
Edit advanced config? (y/n)
y/n> n
Remote config
y/n> n
URIが表示されるので、そのURIを自身でブラウザに張り付けて認証や同意する必要があります。
成功した場合は検証コードが表示されるので、その内容をコピペする
Log in and authorize rclone for access
Enter verification code> (検証コード)
Configure this as a Shared Drive (Team Drive)?
y/n> n
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
e/n/d/r/c/s/q> q