根据Basecamp API文档,文件应使用HTTP POST上传,内容类型设置为application / octet-stream,请求正文包含文件的二进制内容(请参阅http://developer.37signals.com/basecamp/)。我想流式传输文件,而不是将整个内容读入内存。我正在使用Python 2.7。
我可以看到一些可能性:
我发现Python: HTTP Post a large file with streaming但听起来除非我想使用表单数据格式,否则我必须修补httplib(!)。那个帖子已经有一年了,所以我希望现在有更好的方法。
现在我正在调查像海报一样创建我自己的混音,但想知道:这真的很难吗?难道没有一种更简单的方法来处理我认为比较标准的用例吗?
答案 0 :(得分:0)
我最终使用Twisted,因为我需要上传异步发生。这篇优秀的博客文章解释了一般程序:http://marianoiglesias.com.ar/python/file-uploading-with-multi-part-encoding-using-twisted/。我只是编写自己的生成器而不是将原始二进制数据写为POST有效负载。