0

这个问题是在python的基础上制定的,但核心问题一般是Drive API。

我有以下 python 代码用于上传部署批处理的多个文件:

batch = service.new_batch_http_request(callback=f_delete_file_batch_callback)
for item in files_list:
    filename = item.name
    file_metadata = {'title' : filename}
    fo = open(filename, "w+b")
    fo.write(item.file.read())
    media = MediaFileUpload(...)
    batch.add(service.files().insert(body=file_metadata, media_body=media))                              

http =  credential.authorize(httplib2.Http())
batch.execute(http = http)
uploaded_files = ... # Here's the question. How do I get new files?
return render(request, 'my_template.html', {'files': uploaded_files}

问题是我不明白如何获取新上传的文件,以便将新行传递给 ajax 并在客户端呈现它们:

my_template.html:

{% for item in files.items %}
    <tr>
        <td>{{item.title}}</td>
        <td>{{item.modifiedDate}}</td>
    </tr>
{% endfor %}

javascript:

$.post(url, data, function(){
    $table.append(response)
});
4

1 回答 1

1

从内存中,批处理请求的响应是新创建文件的文件资源数组。实际上它是一个多部分的 mimetype,每个组件请求都有一个部分。

浏览 python 库(啊,我讨厌库),看起来对每个身体部位调用的构造函数都有一个可选的回调。在您的情况下,您已将其定义为callback=f_delete_file_batch_callback

Soooo,我希望每个插入的文件都使用文件对象调用此回调。

默认情况下,文件对象将仅包含标题、id 和 mimetype。如果您想要修改日期,则需要将它(或 *)添加到fields参数中。

于 2017-07-19T09:03:38.117 回答