2010-04-24 137 views

回答

20

虽然the docs称之为“上传”,一切都归结为发送格式正确HTTP POST要求,所以当然的它实际上是一个新的创造,而不是实际的,否则现有文件的“上传”。 (通过POST请求的创建与通常描述为REST API的请求类似,但实际上REST通常使用PUT请求,而不是当然)。

你只需要创建一个上市here代表任何格式的文档数据的斑点 - 这取决于你的编程语言,最简单的可能是text/csv的电子表格和application/rtf一个文本文档 - 再放入以适当格式的POST数据。例如,为了使在最简单的方式电子表格(没有元数据),你可以POST是这样的:

POST /feeds/default/private/full HTTP/1.1 
Host: docs.google.com 
GData-Version: 3.0 
Authorization: <your authorization header here> 
Content-Length: 81047 
Content-Type: text/csv 
Slug: Example Spreadsheet 

ColumnA, ColumnB 
23, 45 

为其专用API提供可以提供帮助,这不那么硬每个特定的编程语言任务;例如,在Python,每the docs,该API建议使用ETags,以避免覆盖的变化当多个客户端同时是“上载”(即,在创建或更新文档)。但是直接准备POST始终是可能的,因为几乎REST API被记录为协议,这些协议是所有特定于语言的API的基础。

11

亚历克斯的回答毫无疑问是正确的,它引出了一个问题:“我该如何通过Google Docs API做到这一点?”

这里有一个方法(在Python,因为我是那种人):

import gdata.docs.service 
import StringIO 

client = gdata.docs.service.DocsService() 
client.ClientLogin(username, password, 
        source='Spreadsheet Creation Example') 

content = 'COL_A, COL_B, COL_C, COL_D\ndata1, data2, data3, data4' 
ms = gdata.MediaSource(file_handle=StringIO.StringIO(content), 
         content_type='text/csv', 
         content_length=len(content)) 
entry = client.Upload(ms, 'Test Spreadsheet') 

这是我在http://code.google.com/p/gdata-python-client/source/browse/tests/gdata_tests/docs/service_test.py发现技术小混搭,我又经由this post发现Google Group for GData Docs API。

的重要见解(我反正)分别为:

  1. 意识到了MediaSource的构造函数的形参“file_handle”将采取任何类似文件的对象,并
  2. 发现(如OP的随访到谷歌集团后提到),该单元测试的例子

的重要来源(我是不是能找到Python特定的开发者指南由亚历克斯的文档链接引用的 - 可能已遗失或埋在谷歌的移动文件a从code.google.com发送到developers.google.com。亚历克斯的链接会重定向至更通用的文件,显示大部分为.NET和Java的例子,但只有一点点的Python)。

+2

嗨@Hephaestus感谢您的信息 - 上面是使谷歌电子表格 - 但是一个人如何可以编程方式创建一个谷歌文件? – BKSpurgeon 2017-04-28 16:10:20

相关问题