Google Drive へのファイルのアップロード
ここでは PyDrive を利用して、Google Drive へファイルをアップロードする方法を紹介します。
PyDrive は Google API クライアントライブラリのラッパーです。
まだインストールしていない方は、「PyDrive のインストール」を参考にインストールしておいてください。
最初の方法はテキストファイルをプログラムで作成しそのまま、Google Drive へ保存する方法。
そして二つ目の方法は、既存のローカルの画像ファイルを Google Drive へアップロードする方法です。
テキストファイルを作成して Google Drive にアップロードする
まず認証情報を記載した 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.TXT というテキストファイルが作成されます。
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)
f = drive.CreateFile({'title': 'TEST.TXT'})
f.SetContentString('Hello')
f.Upload()
ファイルの内容は SetContentString メソッドでセットできます。
また初回実行時にはクレデンシャル情報が保存されます。上記の yaml では credentials.json ファイルに保存されます。
画像ファイルのアップロード
既存の画像ファイルを Google Drive にアップロードするには、CreateFile メソッドで MIME タイプをセットし、 ファイル名を SetContentFile メソッドで指定します。
settings.yaml を作成するところは、上記の例と同様です。
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)
f = drive.CreateFile({'title': 'test.jpg', 'mimeType': 'image/jpeg'})
f.SetContentFile('/home/foo/test.jpg')
f.Upload()
これで test.jpg という名前で Google Drive 上に画像ファイルがアップロードされます。