LoginSignup
1
0

More than 3 years have passed since last update.

skickaの使い方

Last updated at Posted at 2021-04-20

skickaというGoogle Drive APIを便利に使うためのコマンドラインツールがあります。
使えるようになるために一苦労あったので方法をメモ。

go環境構築

skickaはgoで動くので実験用にdockerでgolangの環境を作ります。

docker pull golang
docker run -itd golang
docker attach {コンテナ名}

これでgo環境ができました。

Google Drive API用のOAuth認証情報の作成

  • GCPコンソールで適当なプロジェクト作成(既存があればそれでよし)
  • Google Drive APIを有効化
  • (なければ)OAuth同意画面を設定(スコープはGoogle Driveの./auth/docs, ./auth/driveがあれば十分だった)
  • OAuth Clientの認証情報を新規作成(種類:テレビと入力が限られたデバイス)
  • 作成したクライアントIDとシークレットはあとの手順で使います

skickaインストールと認証

go get github.com/google/skicka
skicka init
apt-get update
apt-get install vim
vim /root/.skicka.config
# skicka.configに生成されたクライアントIDとシークレットを追記し、コメントインする。
skicka -no-browser-auth df
# URLが表示されるのでブラウザにペーストし、Google Driveへのアクセスを許可する
# ブラウザに表示された認証コードをskickaのコンソールにペースト

dfの結果が以下のように表示されればOKです

Capacity    15.00 GiB
Trash           0 B       0.00%
Drive      209.70 MiB     1.37%
Gmail        2.47 GiB    16.47%
Photos     598.67 MiB     3.90%
Free space  11.74 GiB    78.27%

Github actionでGoogle driveにファイルをアップロードする

Github actionsでGoogle driveにファイルをアップロードするにはInteract with Google Driveというactionを使用します。

認証情報として skicka-tokencache-json に 上記の認証手順で /root/.skicka.tokencache.json の文字列を指定します。
またOauthの情報として google-client-idgoogle-client-secret も指定します。

正しく認証情報が指定されていれば以下のようなコマンドでファイル/ディレクトリをアップロードすることができます。

- name: Upload to Google Drive
  uses: satackey/action-google-drive@v1
  with:
    skicka-tokencache-json: ${{ secrets.SKICKA_TOKENCACHE_JSON }}
    upload-from: ./
    upload-to: /path/to/upload

    # For those who set up Google Drive API client ID and secret themselves
    google-client-id: ${{ secrets.GOOGLE_CLIENT_ID }}
    google-client-secret: ${{ secrets.GOOGLE_CLIENT_SECRET }}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0