这个问题是基于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)
});
答案 0 :(得分:1)
从内存中,批处理请求的响应是新创建的文件的文件资源数组。实际上它是一个多部分mimetype,每个组件请求都有一个部分。
在python库周围(我讨厌库),它看起来像是为每个body部分调用的构造函数的可选回调。在您的情况下,您已将其定义为callback=f_delete_file_batch_callback
Soooo,我希望用每个插入文件的文件对象调用这个回调。
默认情况下,文件对象只包含title,id和mimetype。如果您需要modifiedDate,则需要将该(或*)添加到fields
参数。