我开发了一个 REST api 来处理文件上传。由于系统处理大文件,因此 api 使用分块编码处理上传。该 api 与 JQuery 的文件上传插件一起工作正常,因此在服务器端没有问题。
我目前正在使用 python 脚本对大量大文件进行一些批处理。但是我找不到任何关于如何使用 python 进行分块上传的示例、代码片段或指南。我查找了 urllib2、httplib,但我无法让它工作。我也深入研究了 curl 但没有任何运气。
您可以使用 Pycurl,如示例中所示。如果省略 if 设置pycurl.INFILESIZE
,Pycurl 将执行分块上传,因为它不知道要上传的数据的大小。
您需要将文件作为多部分表单数据上传。可以通过将编码类型设置为“multipart/form-data”在 curl 中完成。类似的上传可以使用这里提到的东西来完成 - Using MultipartPostHandler to POST form-data with Python