当前位置: 首页 > 知识库问答 >
问题:

我如何上传文件到谷歌驱动器使用驱动器API使用Python?

弘浩瀚
2023-03-14
def newer():
    url= 'https://USERNAME:PASSWORD@www.googleapis.com/upload/drive/v3/files?uploadType=media'
    data='''{{
      "name":"testing.txt",
    }}'''
    response = requests.post(url, data=data)
    print response.text

我是否需要登录到google cloud来访问身份验证令牌或凭据的API

共有1个答案

胡昊
2023-03-14

最后,我明白了如何上传文件到谷歌驱动器使用API。

首先,您需要安装python库,它提供了使用drive API的方法。安装库:pip安装google-api-python-client,然后代码如下所示。

from __future__ import print_function
from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
from apiclient.http import MediaFileUpload,MediaIoBaseDownload
import io

# Setup the Drive v3 API
SCOPES = 'https://www.googleapis.com/auth/drive.file'
store = file.Storage('credentials.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
    creds = tools.run_flow(flow, store)
drive_service = build('drive', 'v3', http=creds.authorize(Http()))

上面的代码片段是为了创建对象/变量,它允许您使用正确的凭据进入驱动器。这里drive_service完成该工作。

文件上传代码在下面。

def uploadFile():
    file_metadata = {
    'name': 'fileName_to_be_in_drive.txt',
    'mimeType': '*/*'
    }
    media = MediaFileUpload('Filename_of_your_local_file.txt',
                            mimetype='*/*',
                            resumable=True)
    file = drive_service.files().create(body=file_metadata, media_body=media, fields='id').execute()
    print ('File ID: ' + file.get('id'))
 类似资料:
  • 这是我收到的错误

  • 下面是https://github.com/google/google-api-nodejs-client的代码。 一般问题:刷新令牌实际上如何与访问令牌一起工作? 背景:根据我的解释,每个访问令牌都有一个有限的时间跨度(~1小时)。因此,当用户第一次连接到我的服务器(服务器为用户身份验证提供了机制)时,服务器将收到有限生命期访问令牌和一次性刷新令牌。1小时后,访问令牌过期。 谢了!

  • 问题内容: 使用此代码,我上传文件,但该文件作为文档上传。表示我上传该文件的任何类型都将作为文档上传到Google驱动器 问题答案: 据我所知(距离我查看已经有几个月了 ) ,谷歌驱动器API 还不支持(至今?) 。解决方法是考虑安装本机google驱动器共享,然后将要上传的文件写入本地映射的共享文件夹中。然后它的谷歌驱动器问题来处理上传。

  • 返回正确的标识符。当我使用服务帐户复制文件时,我可以全天在团队驱动器中复制。当我将它复制到用户的驱动器时,我得到的是“File not found:$UserRootid”。 我假设这是由于服务帐户无法访问用户的“我的驱动器”。我怎样才能让这个手术奏效?有人尝试过吗?