通过python实现mutipart/form发送数据到paste.ubuntu.org.cn

paste.ubuntu.org.cn是国内很多linuxer喜爱的“在线剪贴板”,在跟网友交流时把代码、截图等发在这里,然后把网址发送给对方即可,而且对多种常见代码支持语法高亮,功能简单贴心。(不用像某网友在这个博客上篇帖子里面那样,在留言里面贴一大堆乱哄哄的代码……=。=)

虽说方便,但平时要发送文件时候还是要打开浏览器,再贴代码或者选择文件,多少有点繁琐,所以打算用python写个上传脚本,跟nautilous结合的话,上传截图就方便多了。

首先问球猫要了个ubpaste的perl的脚本,虽然我不懂perl,但发现上传部分只有10来行代码嘛……看来挺简单的,可能用urllib随便弄一下就可以了……结果发现,不行!paste.ubuntu.org.cn用的是mutipart/form协议方式的上传,而python标准库里面没有直接支持这种协议(perl却有……而且自动支持……所以几行代码搞定=。=)……

查了一下资料后自己写了个class来实现mutipart的boundary,才知道用http来发送文件,特别是上传大文件是这么麻烦的事情……不过还好,不算很复杂,但是整个脚本下来居然有150行代码了……=。=

现在还不能直接拿来当nautilous script用,因为第一个参数是读入文字而不是文件,还在犹豫用bash来重新封装(使用curl一行就搞定上面所说的上传了)……[懒ing]

文章分类 Python, Unix/Linux 标签: , , ,
6 comments on “通过python实现mutipart/form发送数据到paste.ubuntu.org.cn
  1. {说道:

    python我只会一点本地应用。就是不会用它来处理网络的问题

  2. 依云说道:

    原来 POST 这么复杂啊,难怪我查了半天就是没看到 Ajax 发送 POST 的方法。。。

  3. BOYPT说道:

    @依云 POST本身不复杂,这个是用于大文件上传的时候用到的复杂点的协议;

    Ajax的post,如果是同一个网站的话,也没什么复杂的阿,不过javascript是不能跨域post的,唯一例外的情况是请求json而不是html,用jQuery库的话可以很好处理。

  4. 依云说道:

    @BOYPT 原来 POST 也可以只是简单的字符串啊,那 MediaWiki 怎么用那么恐怖的东东,吓死我了……

  5. xq262144说道:

    有个pycurl的库的,封装了curl,挺不错

  6. xq262144说道:

    还有一个问题,就是您的博客好像用Chrome 7发消息就会被spam,不知道是什么问题。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*