(2017 年 3 月)请注意,虽然该问题专门询问 Drive API v2,但开发人员应该知道Google Drive API团队在 2015 年底发布了 v3insert()
,并在该版本中更改了名称create()
以更好地反映文件操作。也没有更多的转换标志——你只需指定 MIMEtypes ......想象一下!
文档也得到了改进:现在有一个专门用于上传(简单、多部分和可恢复)的特殊指南,附带 Java、Python、PHP、C#/.NET、Ruby、JavaScript/Node.js 和 iOS 中的示例代码/Obj-C 上传一个文件和另一个将 CSV 文件导入为 Google 表格的文件。
只是为了说明它是多么简单,下面是另一种 Python 解决方案(针对文档中的示例),用于不需要apiclient.http.MediaFileUpload
该类的短文件(“简单上传”)。此代码段假定您的身份验证代码适用于您的服务端点所在DRIVE
的最小身份验证范围为https://www.googleapis.com/auth/drive.file
.
# filenames & MIMEtypes
DST_FILENAME = 'inventory'
SRC_FILENAME = DST_FILENAME + '.csv'
SHT_MIMETYPE = 'application/vnd.google-apps.spreadsheet'
CSV_MIMETYPE = 'text/csv'
# Import CSV file to Google Drive as a Google Sheets file
METADATA = {'name': DST_FILENAME, 'mimeType': SHT_MIMETYPE}
rsp = DRIVE.files().create(body=METADATA, media_body=SRC_FILENAME).execute()
if rsp:
print('Imported %r to %r (as %s)' % (SRC_FILENAME, DST_FILENAME, rsp['mimeType']))