V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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 · Dec 13, 2011 · 7321 views
    This topic created in 5258 days ago, the information mentioned may be changed or developed.
    用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 replies    1970-01-01 08:00:00 +08:00
    lyxint
        1
    lyxint  
    OP
       Dec 13, 2011
    在x201i上压测可以到200请求/s, 我也不知道是高了还是低了.
    缺点就是浪费inode
    zenwong
        2
    zenwong  
       Dec 13, 2011
    早年自己也写了一个,不过兴趣一过工作一忙就不想维护了。
    lyxint
        3
    lyxint  
    OP
       Dec 13, 2011
    @zenwong 练手的. 不过有一个人用我就会很开心的. 提什么建议也会及时改进.
    evlos
        4
    evlos  
       Dec 13, 2011
    我以前弄了个PHP的,但是后来发现不断有人拿来缩短广告链接去骗人,后来域名在QQ上被列为黑名单了,搜索引擎也几乎搜不到了。所以要架的话,别用有价值的域名喔 ~~
    lyxint
        5
    lyxint  
    OP
       Dec 14, 2011
    @evlos 谢谢提醒
    alsotang
        6
    alsotang  
       Dec 23, 2011
    @evlos 呵呵呵。
    alsotang
        7
    alsotang  
       Dec 23, 2011
    看了源码。用了太多import *语法了,连urlfetch也import *,还直接调用post()这个函数.....
    《python学习手册》上面说一个模块文件里面最好只用一个import *语法,否则当文件大了的时候不知到某个函数到底是本文见定义的还是文件头的多个import *的其中一个定义的,这样会造成调试困难。如果实在觉得python导入时候的模块名字空间麻烦的话,最好就用类似from urlfetch import post这样的语法,而不是全部导入。
    lyxint
        8
    lyxint  
    OP
       Dec 27, 2011
    @alsotang shurl.im没有用到urlfetch这个模块啊.
    lyxint
        9
    lyxint  
    OP
       Dec 27, 2011
    @alsotang 说得对, 少用并最好不用import *

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

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

    shurl还有一个mongodb分支
    udonmai
        21
    udonmai  
       Mar 11, 2012
    @lyxint 恩,也是。。也不用什么计算~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3958 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 05:09 · PVG 13:09 · LAX 22:09 · JFK 01:09
    ♥ Do have faith in what you're doing.