通过python中的api上传到Google云端硬盘后,如何获取链接?

时间:2018-12-28 16:09:33

标签: python google-drive-api

这里使用带有Python的Google Drive API将文件上传到Google Drive,如何获取上传文件的链接。

我尝试了print (res['exportLinks']),但它给了我这个错误。

  

KeyError:'exportLinks'

完整的python代码

#!/usr/bin/env python

from __future__ import print_function
import os

from apiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools

SCOPES = 'https://www.googleapis.com/auth/drive'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_secrets.json', SCOPES)
    creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v2', http=creds.authorize(Http()))

FILES = (('hello.txt', False),)

for filename, convert in FILES:
    metadata = {'title': filename}
    res = DRIVE.files().insert(convert=convert, body=metadata,
            media_body=filename, fields='mimeType,exportLinks').execute()
    if res:
        print (res['exportLinks'])

是否有其他替代方法可以做到这一点。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

我发现了this page,它说您可以通过调用file.get('id')来获取上载文件的ID-在您的情况下为res.get('id')

尝试此代码

    # ...
    res = DRIVE.files().insert(convert=convert, body=metadata,
        media_body=filename, fields='mimeType,exportLinks,id').execute() # <-- EDIT: added id here
    print('Uploaded file to {url}'.format(url='https://drive.google.com/open?id=' + res.get('id')))