gdrive で CLI から google drive を操る
LinuxでCLIからgoogle driveを操作するための設定を行いました。
google drive CLIツール「gdrive」をインストールし、操作できるように設定します。
実行コマンドの例も最後に載せておきます。
前提条件
- RHEL8.9 Azureインスタンス
- gdrive 3.9.1
- 所要時間 :30分−1時間程度
0. google API 側の設定
このページを参考にGCP側で設定を行うことで、Google DriveにAPIでアクセス出来るようになります。
上記URLが参考になるので詳細は割愛します。
(私が行ったときは9番でUser support email
とDeveloper contact information
を同一メールアドレスにするとエラーが出ました。)
1. gdriveのインストール
wget
コマンドを使用して、gdriveの最新版をダウンロードします。
githubのページのAssetsから、OSに対応するURL(今回はLinux)をコピーしました。
$ wget https://github.com/glotlabs/gdrive/releases/download/3.9.1/gdrive_linux-x64.tar.gz
ダウンロードが完了したら、tar
コマンドを使用してアーカイブを解凍します。
$ tar -xzf gdrive_linux-x64.tar.gz
次に、解凍されたgdriveバイナリを/usr/local/bin/ディレクトリに移動し、実行可能にします。
$ sudo mv gdrive /usr/local/bin/
$ sudo chmod +x /usr/local/bin/gdrive
これで、gdriveコマンドがシステム全体で利用可能になりました。インストールが正しく行われたことを確認するために、バージョン情報を表示します。
$ gdrive version
gdrive 3.9.1
Commit: unknown
Rust: 1.75.0
Arch: x86_64
OS: linux
2. google driveアカウントの設定
次に、google driveアカウントをgdriveに追加します。以下のコマンドを実行します。
$ gdrive account add
実行すると、クライアントIDとクライアントシークレットを求められます。これらは0. google API 側の設定 で作成したプロジェクトから取得したものを入力します。
Client ID: xxxxxx.apps.googleusercontent.com
Client secret: xxxxxxxx
その後、gdriveはブラウザで特定のURLを開くように指示します。URLを開き、指示に従ってGoogleアカウントへのアクセスを許可します。(たしか安全でないページのような表示があったはずですが、詳細をクリックして先に進みます。)
Gdrive requires permissions to manage your files on Google Drive.
Open the url in your browser and follow the instructions:
https://accounts.google.com/xxxxxxxxx
認証が完了すると、CLIに戻り、google driveへのアクセスが設定されます。
3. gdriveの基本操作
ファイルもフォルダも一意の ID で操作を行います。
gdrive のコマンドが紹介されているブログなど確認しましたが、古いものが多く、現在のバージョンでは利用できないことがあるのでお気をつけください。
# マイドライブのファイルリストを取得(デフォルト最大30個まで)
$ gdrive files list
# フォルダの中身を表示したい場合、リストの該当フォルダのIDをParent_IDとして指定する
$ gdrive files list --parent {parent_ID}
# 特定のファイルを削除
$ gdrive files delete {file_id}
# ローカルのファイルである{file_path} を google drive の {folder_id} にアップロード
$ gdrive files upload --parent {folder_id} {file_path}
まとめ
RHEL8.9上で gdrive を使用して google drive を CLI から操作する方法について説明しました。これにより、ファイルのアップロード、ダウンロード、一覧表示、削除などの操作を簡単に行うことができ、自動化に組み込むことが可能になります。
株式会社siracusa のテックブログです。 社内における自動化の仕組みや、BizOpsにまつわる技術的な知見を投稿します。 siracusa.jp/
Discussion