V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
lyxint
V2EX  ›  Python

写了一个短链接服务

  •  
  •   lyxint · 2011-12-13 23:18:29 +08:00 · 6537 次点击
    这是一个创建于 4728 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用python+bottle写了一个简单的短链接服务
    主页在 http://shurl.im/
    代码在 http://github.com/lyxint/shurl

    模仿git.io写的
    curl -i http://shurl.im/ -F "url=your url"来创建新的短链接
    例如 curl -i http://shurl.im/ -F "url=http://v2ex.com/"
    url存的是纯文件, 一个url会用掉两个文件, 比较浪费
    下一步看看能不能把git用来做存储

    欢迎大家提意见哈
    21 条回复    1970-01-01 08:00:00 +08:00
    lyxint
        1
    lyxint  
    OP
       2011-12-13 23:30:20 +08:00
    在x201i上压测可以到200请求/s, 我也不知道是高了还是低了.
    缺点就是浪费inode
    zenwong
        2
    zenwong  
       2011-12-13 23:43:16 +08:00
    早年自己也写了一个,不过兴趣一过工作一忙就不想维护了。
    lyxint
        3
    lyxint  
    OP
       2011-12-13 23:50:45 +08:00
    @zenwong 练手的. 不过有一个人用我就会很开心的. 提什么建议也会及时改进.
    evlos
        4
    evlos  
       2011-12-13 23:59:34 +08:00
    我以前弄了个PHP的,但是后来发现不断有人拿来缩短广告链接去骗人,后来域名在QQ上被列为黑名单了,搜索引擎也几乎搜不到了。所以要架的话,别用有价值的域名喔 ~~
    lyxint
        5
    lyxint  
    OP
       2011-12-14 00:01:43 +08:00
    @evlos 谢谢提醒
    alsotang
        6
    alsotang  
       2011-12-23 12:30:44 +08:00
    @evlos 呵呵呵。
    alsotang
        7
    alsotang  
       2011-12-23 13:19:25 +08:00
    看了源码。用了太多import *语法了,连urlfetch也import *,还直接调用post()这个函数.....
    《python学习手册》上面说一个模块文件里面最好只用一个import *语法,否则当文件大了的时候不知到某个函数到底是本文见定义的还是文件头的多个import *的其中一个定义的,这样会造成调试困难。如果实在觉得python导入时候的模块名字空间麻烦的话,最好就用类似from urlfetch import post这样的语法,而不是全部导入。
    lyxint
        8
    lyxint  
    OP
       2011-12-27 15:19:55 +08:00
    @alsotang shurl.im没有用到urlfetch这个模块啊.
    lyxint
        9
    lyxint  
    OP
       2011-12-27 16:16:20 +08:00
    @alsotang 说得对, 少用并最好不用import *

    我会注意的, 多谢指点
    iray1991
        11
    iray1991  
       2012-01-15 12:41:42 +08:00
    晕我错了,这个是短链接还原,楼上见谅,这里不好删帖。。。
    reinhard
        12
    reinhard  
       2012-01-24 03:00:07 +08:00
    @evlos 谢谢提醒~
    mlzboy
        13
    mlzboy  
       2012-01-24 12:52:13 +08:00
    储存用的是文件?
    lyxint
        14
    lyxint  
    OP
       2012-01-24 17:49:12 +08:00 via Android
    @mlzboy 嗯,纯文件。 github上还有一个mongodb的分支
    dreampuf
        15
    dreampuf  
       2012-01-24 18:37:35 +08:00
    不错的思路,clone了。
    soulsaunter
        16
    soulsaunter  
       2012-03-10 12:46:25 +08:00
    我倒。貌似被墙了。
    武汉电信测试...
    sobigfish
        17
    sobigfish  
       2012-03-10 12:49:00 +08:00
    可以试试google safebrowsing API 过滤掉有害的地址不给它服务。 http://code.google.com/apis/safebrowsing/
    lyxint
        18
    lyxint  
    OP
       2012-03-11 16:23:49 +08:00
    @soulsaunter 放在linode上的

    @sobigfish 谢谢分享
    udonmai
        19
    udonmai  
       2012-03-11 17:05:07 +08:00
    为神马存文件?
    lyxint
        20
    lyxint  
    OP
       2012-03-11 17:18:16 +08:00
    @udonmai "归根结底都是文件", 开个玩笑。 不用数据库是因为本来就没多复杂的逻辑, 能不用就不用。

    shurl还有一个mongodb分支
    udonmai
        21
    udonmai  
       2012-03-11 19:31:00 +08:00
    @lyxint 恩,也是。。也不用什么计算~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2299 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:05 · PVG 00:05 · LAX 08:05 · JFK 11:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.