Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PythonではなくRcloneで アップロードしてみた

098ad475722e3697ec2fba28c8654f9f?s=47 YouYou
December 05, 2021

PythonではなくRcloneで アップロードしてみた

098ad475722e3697ec2fba28c8654f9f?s=128

YouYou

December 05, 2021
Tweet

Transcript

  1. PythonではなくRcloneで アップロードしてみた

  2. Name:ユータ Occupation:SRE Twitter:@Y0u281 (オーでなくゼロです) ブログ:https://zenn.dev/yuta28 自己紹介 Twitter

  3. 目次 • 背景 • Pythonで実装 • Rcloneで実装 • おまけ •

    まとめ
  4. 背景 ファイルコピーをしたい

  5. 背景 • Pythonを使えば簡単にできそう • PyDriveというものが有名らしい ◦ →既に開発終了していて非推奨らしい • GoogleドライブにはAPIがあってそれを使えばできそう ◦

    Upload file data | Google Drive API ◦ サンプルソースも用意されていてイケる !
  6. Pythonで実装 1. GCPでAPIを有効化 2. OAuthの認証情報を作成 3. クライアントトークンをEC2内に格納 4. Python Quickstart

    | Google Drive API 5. Upload file data | Google Drive API
  7. Pythonで実装

  8. Pythonで実装 googleapiclient.errors.HttpError: <HttpError 404 when requesting https://www.googleapis.com/upload/drive/v3/files?fields=id&alt=json&uploadType=resumable returned "File not

    found: /&~ev-%,s+2eqeH|jwG3!#-a%6#6LZyhdh". #IDはサンプル Details: "[{'domain': 'global', 'reason': 'notFound', 'message': 'File not found: 1mE_qImJ7ASarUCE4XUkv9sVER4-sVJKM.', 'locationType': 'parameter', 'location': 'fileId'}]">
  9. Rcloneで実装 • Rclone.org • Go製のOSS • クラウドストレージにファイルをup/downloadできる ◦ 40個以上に対応!! ◦

    暗号化して転送することも可能 • クラウドストレージ先にmountも可 • (プレビューだが)WebGUIも提供
  10. Rcloneで実装 rclone configでセットアップを実施 • 前述で取得したクライアントトークンの IDとシークレット情報を貼り付け https://rclone.org/drive/

  11. Rcloneで実装 copyコマンドでソースファイルと接続先のクラウドストレージ名を指定 rclone copy source file remote:

  12. Rcloneで実装

  13. おまけ GUIダッシュボードもあります rclone rcd --rc-web-gui コマンドベースではないので 直感的に設定しやすい ? OSS活動も受付中らしい https://github.com/rclone/rclone

    -webui-react
  14. まとめ

  15. まとめ プログラミングなにもわからない

  16. ありがとうございました より詳しい内容は以下のブログで↓ PythonではなくRcloneでGoogle共有ドラ イブにファイルをアップロードしてみた