Golang用のGoogle Driveを扱うライブラリ

Google Driveにはプログラムから色々な操作を行うためのAPIが用意され、またそのAPIを簡単に呼び出せる各言語用の公式SDKが用意されている。公式SDKが使いにくいということはないが、実際に使いたい場面ではAPIの呼び出しのチェインやエラーハンドリング、パラメータの指定方法の都合などで少しばかり冗長なコードを書かざるを得ない部分がある。過去数年いくつかのシステムでGoogle Driveに関する機能の実装をしてきたが、振り返ってみると同じような冗長なコードをそれぞれのプロジェクトで書いてきていたので、このタイミングでコードを共通化して使いまわせるようにライブラリを作った。

https://github.com/yokoe/hakucho

v0.0.4現在、下記のような処理が実装されている。

  • フォルダの作成
  • ファイルのアップロード
  • アクセス権限の付与
  • ファイルの削除
  • 検索

例えば、ファイルの検索であればページングの処理なども含めて下記のように書くことができる。

files, err := hakucho.NewClient("/path/to/secret.json", "/path/to/token.json")
  .ListFiles(
    []string{"id", "createdTime", "name"}, // 作成日時、ファイル名などを結果に含める
    20, // 最大20件
    option.FullTextContains("Guitar"), // ファイル名や内容にGuitarが含まれるもの
    option.OrderBy("createdTime"), // 作成日時順に並び替える
)
Pocket