Google Drive API V2,Python - 无需上传新文件且无需使用Google云端硬盘用户界面即可创建新文件

时间:2012-07-04 14:08:40

标签: google-app-engine google-drive-api

我发现的所有文档都与创建新文件和将新文件放在用户的Google云端硬盘文件夹中相关,这是通过用户上传文件并让python脚本使用MediaFileUpload来收集文件并将其放入云端硬盘来实现的。

我想在我的GAE代码中创建一个新文件,然后把它放进去。例如,我的代码在命中数据库后呈现一个新的XML字符串,我想获取该字符串,将其设为文件并放入Google云端硬盘。

任何人都在做这样的事情吗?

2 个答案:

答案 0 :(得分:4)

您应该使用MediaInMemoryUpload,它专为此目的而设计。您可以传递字符串和MIME类型。

media = MediaInMemoryUpload('some data', 'text/plain')

答案 1 :(得分:1)

使用以下代码,content是您要放置的字符串。您不必使用MediaFileUpload和python客户端库。

def update(content, file_id):
    url = 'https://www.googleapis.com/upload/drive/v2/files/%s?uploadType=media' % file_id
    headers = {
        'Content-Type': 'text/plain',
        'Content-Length': str(len(content)),
        'Authorization': 'Bearer <oauth2 token>'
        }
    response = urlfetch.fetch(url, payload=content, method='PUT', headers=headers)
    assert response.status_code == 200
    return response.content