📜  使用Python在 Google Drive 上上传文件(1)

📅  最后修改于: 2023-12-03 15:06:53.356000             🧑  作者: Mango

使用Python在 Google Drive 上上传文件

Google Drive是一个在线文件存储和同步服务,可让用户轻松地将文件保存到云端,同时可以随时随地在不同设备之间访问这些文件。在这篇文章中,我们将介绍如何使用Python在Google Drive上上传文件。

步骤1:创建Google Cloud Console项目

要开始使用Google Drive API,您需要从Google Cloud Console中创建一个项目。在Google Cloud Console中,转到“API和服务”>“仪表板”,然后单击“创建项目”。

步骤2:启用Google Drive API

在Cloud Console中创建项目后,请单击“启用API和服务”并搜索“Google Drive API”。单击“启用”以启用API。

步骤3:创建OAuth 2.0客户端ID

要使用Google API,您需要使您的应用程序与Google API进行身份验证。为此,请创建一个OAuth 2.0客户端ID。

在Cloud Console中,转到“API和服务”>“凭据”,然后单击“创建凭据”>“OAuth客户端ID”。

选择应用程序类型为“桌面应用程序”,输入名称,然后单击“创建”。

步骤4:下载客户端密钥

客户端ID创建后,可以通过单击“下载”按钮来下载客户端密钥。将此密钥保存在服务器上的某个地方并将其用于访问Google API。

步骤5:安装Google API Python客户端

要通过Python与Google Drive API进行通信,需要安装Google API Python客户端。将以下命令键入终端:

!pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
步骤6:授权您的应用程序

安装Google API Python客户端后,请在您的应用程序中进行身份验证。

以下代码片段演示如何使用Python对Google Drive API进行身份验证:

from google.oauth2.credentials import Credentials
from google.auth.credentials import UserCredentials

creds = None
if os.path.exists('token.json'):
    creds = Credentials.from_authorized_user_file('token.json', SCOPES)
if not creds or not creds.valid:
    if creds and creds.expired and creds.refresh_token:
        creds.refresh(Request())
    else:
        flow = InstalledAppFlow.from_client_secrets_file(
            'client_secret.json', SCOPES)
        creds = flow.run_local_server(port=0)
    with open('token.json', 'w') as token:
        token.write(creds.to_json())

在运行此代码时,您将被要求提供您的Google凭据并授予应用程序访问Google Drive的权限。

步骤7:上传文件

现在,您已经完成了授权过程,并且可以开始使用Python上传文件到Google Drive了!

以下代码片段演示如何使用Python上传文件到Google Drive:

from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials

creds = Credentials.from_authorized_user_file('token.json', scopes)

drive = build('drive', 'v3', credentials=creds)

file_metadata = {'name': 'My Report',
                 'parents': ['123abc']}
media = MediaFileUpload('files/report.csv',
                        mimetype='text/csv')
file = drive.files().create(body=file_metadata,
                                    media_body=media,
                                    fields='id').execute()
print(F'File ID: {file.get("id")}')

上述代码中,“My Report”是您要上传的文件名,“files/report.csv”是文件的本地路径,以及“123abc”是该文件将上传至的文件夹的ID。

完成这些步骤后,您现在已经可以使用Python上传文件到Google Drive了!

参考文献
  1. Google Drive API https://developers.google.com/drive/api
  2. Google API Python客户端 https://developers.google.com/api-client-library/python