【Python/PyDrive】Google Driveにファイルをアップロード/ダウンロード

Pythonモジュール「PyDrive」でGoogle Driveにファイルをアップロードしたりダウンロードする方法についてまとめました。

PyDriveとは

PyDriveとは、Google DriveにファイルをアップロードしたりダウンロードできるPythonモジュールです。
インストール方法は以下のとおりです。

① pipで「Google API クライアント」「PyDrive」モジュールをインストールします。

$ pip install google-api-python-client
$ pip install PyDrive

Drive APIの有効化

① ブラウザでGoogleアカウントにログインします。

② ブラウザで以下のリンクを開き、Google デベロッパーコンソールを表示させます。
https://console.developers.google.com/flows/enableapi?apiid=drive&pli=1

③ プロジェクトを作成し、[Continue] > [Go to credentials”]をクリックします。

④ [OAuth consent screen]タブ > メールアドレスを選択 > [Product name]を入力 > [Save]ボタンをクリックします。

⑤ [Credentials]タブを選択 > [Create credentials”]ボタンをクリック > [OAuth client ID”]を選択します。

⑥ アプリケーションタイプとして [Other”]を選択 > 名前は[Drive API Quickstart]を入力し、[Create]ボタンをクリックします。

⑦ [OK]をクリックし、クライアントID の右側に表示されている[ダウンロード]ボタンをクリックし、「client_secret.json」というファイル名でダウンロードします。

⑧ このファイルを作業フォルダに移動して という名前にします。

【Python】Google Drive へのアップロード

① 認証情報を記載した「settings.yaml」ファイルを以下の内容で作成します。
【settings.yaml】

client_config_backend: settings
client_config:
  client_id: <クライアントID>
  client_secret: <クライアントシークレット>

save_credentials: True
save_credentials_backend: file
save_credentials_file: credentials.json

get_refresh_token: True

oauth_scope:
  - https://www.googleapis.com/auth/drive.file
  - https://www.googleapis.com/auth/drive.install

クライアントID、クライアント・シークレットは先程Google APIを有効化した際に作成したものを入力します。

② 以下のスクリプトを実行すると、Google Drive 上に画像ファイル(test.jpg)をアップロードできます。
初回実行時は、credentials.json ファイルにクレデンシャル情報保存されます。

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

gauth = GoogleAuth()
gauth.LocalWebserverAuth()

drive = GoogleDrive(gauth)

filepath = '/img/test.jpg'
title = 'test.jpg'
file = drive.CreateFile({'title': title, 'mimeType': 'image/jpeg'})
file.SetContentFile(filepath)
file.Upload()
関連記事
1 Python入門 サンプル集
2 NumPy入門 サンプル集

コメント