首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python上传Basecamp文件

使用Python上传Basecamp文件
EN

Stack Overflow用户
提问于 2011-09-06 10:41:41
回答 1查看 646关注 0票数 0

根据Basecamp文档,应该使用HTTP上传文件,将内容类型设置为application/octet,并使用包含文件二进制内容的请求主体(请参阅http://developer.37signals.com/basecamp/)。我想要流文件,而不是把整件事读入内存。我正在使用Python2.7。

我可以看到几种可能性:

  • 使用低级套接字API来实现这一点,
  • 使用urllib2 with Poster (http://atlee.ca/software/poster/)来处理文件流。但是,有了海报,您可以为文件流注册特殊的打开程序,我已经显式地使用了自己的打开器(将它传递给build_opener)来处理Basecamp服务器上的身份验证。此外,海报文档只涉及发布表单数据,我还不清楚它是否能够处理octet-stream.
  • Use httplib (仍在阅读源代码)。看起来,这将为POST数据提供更低级别的处理(因此我可以使用八位流),但我仍然看不到一种简单的方式来流文件.

我找到了Python: HTTP Post a large file with streaming,但听起来好像除非我想使用表单数据格式,否则我必须修补httplib (!)。那个职位已经有一年了,所以我希望现在有一个更好的方法。

现在我正在研究像海报一样创建我自己的混音,但是想知道:这真的很难吗?难道没有更简单的方法来处理我认为是相对标准的用例吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-07 07:27:25

最后,我使用了Twisted来实现这一点,因为无论如何,我都需要异步进行上传。这篇优秀的博客文章解释了一般程序:http://marianoiglesias.com.ar/python/file-uploading-with-multi-part-encoding-using-twisted/。我只是写了我自己的生产者,而不是写原始二进制数据作为后有效载荷。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7318582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档