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 API Credential

その上で次のコードを実行すれば、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 上に画像ファイルがアップロードされます。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Python 入門