Python

【Python】Google Drive APIでドライブにファイルをアップロードする方法

この記事は約4分で読めます。

 

この記事では、Google Drive APIとPythonを使用してGoogle Driveにファイルをアップロードする方法を解説します。

 

関連記事:【Python】Google Drive APIを使ってファイル一覧を取得する方法

 

環境設定

 

ライブラリのインストール

 

まず、以下のコマンドで必要なパッケージをインストールします。

 

pip install --upgrade google-api-python-client
pip install google-auth
pip install google-auth-oauthlib
pip install google-auth-httplib2

 

 

認証情報の作成

 

Google Cloud Consoleで新しいプロジェクトを作成し、Drive APIを有効にして認証情報(credentials.json)をダウンロードします。

 

手順について下記の記事で解説しています。

関連記事:【GCP】GoogleCloudPlatformでプロジェクトを作成してAPI鍵の作成して有効化する

 

また合わせて下記のURLからGoogle driver API を有効化しておく必要があります

Google Cloud console
Spend smart, procure faster and retire committed Google Cloud spend with Google Cloud Marketplace. Browse the catalog of over 2000 SaaS, VMs, development stacks...

 

Google Drive APIを使用してファイルの一覧を取得する

 

以下は、PythonでGoogle Drive APIを使用してファイルの一覧を取得するサンプルコードです。

 

from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
from httplib2 import Http

SCOPES = ['https://www.googleapis.com/auth/drive']

credentials = ServiceAccountCredentials.from_json_keyfile_name(
    r"C:\Users\oruka\~~~~~.json", SCOPES
)
http_auth = credentials.authorize(Http())
drive_service = build('drive', 'v3', http=http_auth)

 

画像ファイルをアップロードするサンプルコード

 

from apiclient.http import MediaFileUpload

folder_id = '<アップロード先のフォルダID>'
file_metadata = {
    'name': '<アップロード時のファイル名>.jpg',
    'parents': [folder_id]
}
media = MediaFileUpload(
    "<ローカルの画像のPATH>.jpg", 
    mimetype='image/jpeg', 
#     resumable=True
)
file = drive_service.files().create(
    body=file_metadata, media_body=media, fields='id'
).execute()

#fieldに指定したidをfileから取得できる
print ('File ID: %s' % file.get('id'))

 

resumable=Trueを指定すると「EOF occurred in violation of protocol ~~~」みたいなエラーが発生したのでコメントアウトしています。画像以外にテキストや動画をアップロードする場合は「mimetype=’image/jpeg’,」の部分を適切なものに変更してください

 

MINE TYPEの参照:https://www.tohoho-web.com/wwwxx015.htm

 

ファイル,フォルダの削除

 

(認証処理)
~~~
file = drive_service.files().delete(
    fileId='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
).execute() 

#fieldに指定したidをfileから取得できる 
print('File ID: %s' % file.get('id'))

 

 

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

タイトルとURLをコピーしました