Python を使用してファイルを Google ドライブにアップロードする

Abid Ullah 2023年6月21日
  1. Python を使用してファイルを Google ドライブにアップロードする
  2. Google ドライブにファイルをアップロードするための Python コード
Python を使用してファイルを Google ドライブにアップロードする

この記事では、Python を使用してファイルを Google ドライブにアップロードする方法を説明します。 これを実現するために、Google Drive API を利用します。

そのため、Google Developer Console に移動して、新しいプロジェクトを作成します。 5 秒から 10 秒、場合によっては数分かかることもあります。

Python を使用してファイルを Google ドライブにアップロードする

Python は、さまざまな用途に使用できる多くの機能とライブラリを備えているため、人気のあるプログラミング言語です。 ファイルを Google ドライブにアップロードする機能は、そのサービスの 1つです。

ファイルを Google ドライブにアップロードしなければならないシナリオがいくつかあります。 たとえば、コンピューターに何か問題が発生した場合、ファイルを他の人と共有したり、バックアップ コピーを作成したりすることがあります。

動機が何であれ、Python を使用してファイルを Google ドライブにアップロードするのは簡単なプロセスです。 次の段落では、タスクを実行する方法を示します。

始める前に、いくつか準備する必要があります。 まず、各コンピューターに Python がプリインストールされている必要があります。

まだインストールしていない場合は、Python の Web サイト からダウンロードできます。

次に、Google ドライブにアクセスするには、まず Gmail アカウントが必要です。 誰もが Gmail を使用していると仮定します。 それでは始めましょう。

ステップ 1: Google API プレイグラウンド

Google を検索すると、Google API Playground に関する詳細情報を見つけることができます。 さらに移動するには、最初のリンクをクリックする必要があります。

Google api プレイグラウンドを検索中

最初のリンクを選択すると、次のような次のページに自動的に移動します。

Google 開発者へのリダイレクト

ステップ 2: Google ドライブ API

Google Developers ページでは、他のオプションの中でも Drive API への道を見つける必要があります。

Drive API 3 というオプションを検索して選択します。 それを選択すると、リンクのリストが表示されます。

ドライブ API v3 を検索中

リンクのリストに表示されている最初のリンクを選択する必要があります。 何かを選択したい場合は、最初にクリックする必要があります。次に、その横にチェックマークが表示されます。

ここでは、最初のリンクをクリックします。

Authorize APIのクリック

約 3 ~ 5 秒ほど待つと、Gmail アカウントにリダイレクトされます。

ステップ 3: Gmail アカウント

ファイルをドライブにアップロードする Gmail アカウントをクリックし、画面の指示に従います。 画面にキャンセル許可の 2つのオプションが表示されます。

続行するには、ドロップダウン メニューから 許可 を選択する必要があります。 Google アカウントをクリックすると、Google Auth がアクションを許可するかどうかを尋ねてきます。

Gmailアカウントの許可

ステップ 4: 認証コード

最終的に諦めて Allow ボタンをクリックすると、許可コードを取得できる新しいページにリダイレクトされます。

コード認証

一方、認証コードは必要ないため、コピーしません。 代わりに、認証コードを交換してトークンにアクセスするボタンをクリックします。

交換承認コードをクリック

ボタンをクリックすると、アクセス トークンが取得されます。

アクセストークン

Python コードの作業中に、アクセス トークンのコピーを作成し、安全な場所に保存する必要があります。 Google ドライブへのファイルのアップロードを容易にするために Python を使用します。アクセス トークンが必要になります。

Google ドライブにファイルをアップロードするための Python コード

ステップ 1: ライブラリ

まず最初に、必要なライブラリとモジュールをインポートします。 この場合、JSONrequests をインポートする必要があります。

ファイルのアップロードには JSON を使用し、ファイルのアップロードを許可する API のリクエストには requests を使用します。

コード例:

import json
import requests

ステップ 2: アクセストークン

次に、辞書を作成し、アクセス トークンをそのキーの 1つの値として使用します。 このシナリオでは、承認がキーであり、アクセス トークンが値です。

コード例:

headers = {"Authorization": "Bearer Paste your access token here"}

Bearer の後にアクセス トークンをスペースのみでコピー アンド ペーストできます。

ステップ 3: ファイル名

これで、別の辞書を作成して、アップロードするファイルに名前を付けることができます。

コード例:

para = {
    "name": "##name for python uploaded file####",
}

ステップ 4: パス

次に、アップロードするファイルにアクセスする必要があります。 このために、ファイルのパスを提供する必要があります。

Python はパスをたどってファイルに到達し、ファイルを開きます。

コード例:

files = {
    "data": ("metadata", json.dumps(para), "application/json; charset=UTF-8"),
    "file": open("Pythonfile.jpg", "rb"),
}

ステップ 5: リクエスト

次に、Python の requests モジュールを使用して、Google ドライブ API にファイルのアップロードをリクエストします。

コード例:

r = requests.post(
    "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart",
    headers=headers,
    files=files,
)

ステップ 6: 印刷する

ここで、上記のすべての手順をコードの実行と組み合わせます。 最終的に、print ステートメントを使用して、コードが機能するかどうかを確認します。

コード例:

import json
import requests

headers = {"Authorization": "Bearer Paste your access token here"}
para = {
    "name": "##name for python uploaded file####",
}
files = {
    "data": ("metadata", json.dumps(para), "application/json; charset=UTF-8"),
    "file": open("Pythonfile.jpg", "rb"),
}
r = requests.post(
    "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart",
    headers=headers,
    files=files,
)
print(r.text)

出力:

{
 "kind": "drive#file",
 "id": "1Furfhe8BFbkEhXn1xcYPr8jYAACNpfV7p",
 "name": "##python uploaded image####",
 "mimeType": "image/jpeg"
}

この出力がエラーなしで得られた場合、コードは正しく機能し、アップロードしたいファイルを Google ドライブにアップロードする必要があります。

ステップ 7: 確認する

Google ドライブにアクセスして、ファイルがアップロードされているかどうかを確認できます。 上記の手順に従って、ファイルがドライブにアップロードされることを 100% 確信しています。

Python を使用して、ファイルを Google ドライブにアップロードできるようになりました。 この手順の設定は簡単で、ほんの数分で完了します。

著者: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn