RaspberryPiからGoogleDriveにファイルをアップロード等操作する

# 手法の検討
GoogleのAPIを利用する方法　と　rclone　というツールを利用する方法があるようだった。
APIはいろいろとご機嫌が悪い事もあるような記事もあったので、rclone　を利用することにした。

# rcloneのインストール
LXTerminalで下記を実行します。
`curl https://rclone.org/install.sh | sudo bash`
（通信速度が確保できるようにしないとエラーが出る事もあるようです。
　私の環境では　他のダウンロード等で通信速度が遅かったら２回ほど失敗しました。。。
　失敗したら、RaspberryPiを再起動して　もう一回実行。で成功しました。）
　アップロード・ダウンロード・一覧取得等、色々できるようです。
　今回は　一覧の取得とアップロードに限って解説しています。

# rcloneの初期設定
※rcloneはバージョンによって、設定の番号（ネット上では　googleDriveが１２番→１３番と
　変わっていっている様で、私の時は１８でした。）とか、メッセージの変化が大きいようです。
　ネットで見ても　微妙に設定のメッセージ等が異なる点もあって、ドキドキでした。。。
　でも、翻訳サイトでメッセージを翻訳しながら調べながら無事に設定できました。
LXTerminalで下記を実行します。
`rclone config`
あとは、次々出てくる質問に答えていくだけです。

新規設定なのでnを入力。
![20220827_145902_ScreenShot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1017925/b7a8a9c4-4298-d6b4-788d-a33425c2e056.png)


グーグルドライブなのでgdriveにしましたが、別になんでも良いみたいです。
使うときの呼び出し名称の設定です。
![20220827_150009_ScreenShot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1017925/141d23fd-052f-855a-bf9d-8885d3cdc73e.png)

GoogleDriveを利用するので　18　を、入力。
1－49まで、選択できるようです。入力するときに　一覧が表示されるので安心ですね。
![20220827_150138_ScreenShot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1017925/8e9c999f-a327-8a9e-8049-ab17c7a4a5a4.png)
![20220827_150209_ScreenShot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1017925/81e8ef88-a469-a88e-ffd9-45ba139f2b67.png)
![20220827_150504_ScreenShot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1017925/8b7208a3-f2a9-41ad-9d90-d6d78ac5f527.png)


次の２つの質問は、何も入れずに　Enter。
![20220827_150635_ScreenShot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1017925/14f83623-b785-27ca-bf21-731157755ec8.png)

次は　フルアクセスを選択するので　1　を入力。
![20220827_150700_ScreenShot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1017925/43e019f3-60d9-77a0-1db9-4a82576329ee.png)


次の質問も　何も入れずに　Enter。
![20220827_150815_ScreenShot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1017925/98a429af-cd4c-39c4-230a-62b60292f1d5.png)


次は n　を２回。
![20220827_151027_ScreenShot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1017925/c34f1f78-7f69-439a-f4ae-2bed6b23ca7f.png)


ここに一番悩みました。
ネット上では　「自動でブラウザが開く」とか、「表示されるリンクをクリック」とかありますが、
私の環境では自動起動されませんでした。
写真の赤枠１の文字をコピーして　もう一つLXTerminalを開いて貼付けします。
するとブラウザが自動で立ち上がり、ログイン→rcloneがアクセスを求めています。→許可。と進みます。
するとトークンが表示されるので　これをコピペで赤枠２に貼り付けます。
（トークンは　->   <-で、囲まれている範囲の文字列だけです。）
![20220827_151557_ScreenShot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1017925/ce0bf208-5b94-bf48-51aa-396ac59d810b.png)


共有ドライブを利用するか？との問いの様なので　n　を入力します。
![20220827_152240_ScreenShot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1017925/3b93651e-8c71-d8ee-3846-b6f30e9fe90c.png)


設定した値の一覧が表示される。リモートで使うか？と聞いてくるので、 y　を入力。
設定完了か聞いてくるので　q　で終了します。

これで、インストールは完了です。


## 初期設定の動作確認
LXTerminalに
`rclone ls gdrive:`
で、Googledriveのファイル一覧を取得できます。
割とすぐに表示されます。

その他のコマンドなどは　rclone　でググると出てくるので、そちらを参照してください。
https://www.nextdoorwith.info/wp/se/how-to-control-google-drive-from-linux-rclone/
様、とても勉強になりました。

# GoogleDriveにアップロード
いよいよです。割と一瞬でアップロードされます。
（１秒に２ファイル以上のアップロードはエラーになるようです。
アップロード間隔を調整するか、アーカイブにしてアップロードするらしい。）

`rclone copy /dev/shm/test.jpg gdrive:otamesi`
/dev/shm/test.jpg  ファイルのフルパス
otamesi          　Googledrive側のフォルダパス。
                 （上記の設定だと　Googledriveのルートで設定しているので、そこからのパス。
　　　　　　　　　　　頭に　/　は、不要みたい。）

以上で終了です。

RaspberryPiで撮影した写真やセンサーの計測結果をアップするのに役立ちそうです。
私は、定点カメラの写真をRAMdisk内に生成して、即Googledriveにアップする使い方をしています。