R
GoogleDriveAPI

Rからgoogle driveのデータにアクセスする

Rにgoogledriveというパッケージがあります。
これを使えば、ローカル(分析環境上)に保存してなくgoogle drive上のみにあるデータを一時的にダウンロードしてRで分析し、最終的にgoogle driveにアップロードすることが可能です。まあなにがいいかというとローカル(分析環境上)にインプット/アウトプットデータを保持しなくていいということですね。

Google driveのアクセス権を取得

Rを起動している環境からweb browserが使用可能な場合

library(googledrive)

##まずはgoogledrive上のデータリストを取得してみる
drive_find(n_max = 50)

##この際にアクセス権の取得プロセスが起動する
Use a local file ('.httr-oauth'), to cache OAuth access credentials between R sessions?

1: Yes
2: No

Selection: 1

あとはweb browserが起動し、そのまま進めていけばOK

Rを起動している環境からweb browserが使用できない場合(クラウドマシーンやサーバーなど)

options(httr_oob_default=TRUE) ##このオプションが必要


Please point your browser to the following url: 

  https://accounts.google.com/o/oauth2/auth?client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

##上記のようにurlが与えられるので、ローカルのweb browserからアクセスし、コードを取得
Enter authorization code: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Google drive上のデータをダウンロードする

#データ名のリストを取得
drive_find( n_max=50)

#まずはマニュアルどおり(ここはマニュアルそのまんま)
##名前で検索
drive_find(pattern = "chicken") ##なんでchickenなんだろ

##ファイル属性で検索
drive_find(type = "spreadsheet")     ## Google Sheets!
drive_find(type = "csv")             ## MIME type = "text/csv"
drive_find(type = "application/pdf") ## MIME type = "application/pdf"

#データをダウンロードする
##例としてAAAAA.tifというgoogle driveにあるtifファイルをダウンロードしてみる
##Google drive上からほしいデータを検索&特定する
inputname <- drive_find(pattern = "AAAAA.tif") 
drive_download(file = inputname, type = "tif", path = here(inputname), overwrite = TRUE) #この例ではhereパッケージ(カレントディレクトリの管理に便利)を利用している.pathはDLする場所を指定

これでhere(inputname)にinputnameのデータがDLされる

データをアップロードする

##outnameはローカルデータ
drive_upload(media = outname, name = outname)