基于 Go 实现的短网址服务 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
timothyye
V2EX    Go 编程语言

基于 Go 实现的短网址服务

  •  
  •   timothyye 2016-12-02 20:53:23 +08:00 3598 次点击
    这是一个创建于 3293 天前的主题,其中的信息可能已经有所发展或是发生改变。
    练手写了个短网址服务,框架基于 Iris 实现,前端页面用了 gulp 构建,短网址的存储用的 redis
    6 月挖的坑,中途拖延症爆发,总算在年底前埋了坑……

    网址: http://biturl.top
    GitHub 地址: https://github.com/TimothyYe/biturl
    31 条回复    2016-12-03 20:33:47 +08:00
    fyibmsd
        1
    fyibmsd  
       2016-12-02 20:58:11 +08:00 via iPhone
    前段时间也搞了一个 https://bitm.pro
    timothyye
        2
    timothyye  
    OP
       2016-12-02 20:59:23 +08:00   1
    @fyibmsd 666666
    poemind
        3
    poemind  
       2016-12-02 21:55:17 +08:00
    666
    newworld
        4
    newworld  
       2016-12-02 22:17:46 +08:00 via iPhone
    感谢 开源 一直想学这些,不知楼主对于 php 这方面的短网址有没有了解 解惑一二
    timothyye
        5
    timothyye  
    OP
       2016-12-02 22:21:25 +08:00
    @newworld PHP 的没搞过,不过短网址的实现算法应该是差不多的
    henbf
        6
    henbf  
       2016-12-02 22:23:10 +08:00   1
    outmanone
        7
    outmanone  
       2016-12-02 22:25:52 +08:00
    Golang 不错。。。看代码用 node build JS ,用 docker 来做容器,这样就可以随意发布了。
    newworld
        8
    newworld  
       2016-12-02 22:49:48 +08:00 via iPhone
    @timothyye 好的 谢谢
    @henbf 谢谢
    Zohar
        9
    Zohar  
       2016-12-02 23:05:07 +08:00 via Android   2
    支持一下(·ω·`)
    kslr
        10
    kslr  
       2016-12-02 23:37:00 +08:00   1
    设计感觉可以再优化优化,操作部分实在太小了。
    YORYOR
        11
    YORYOR  
       2016-12-03 00:03:29 +08:00 via iPhone
    防碰撞用的什么策略呢 还没来得及去读代码
    lakeview
        12
    lakeview  
       2016-12-03 00:10:19 +08:00
    加个访问统计如何,国内新浪短网址服务都没有统计功能,本来打算 google ,然后想起来国内大多数人访问不到 google:(
    timothyye
        13
    timothyye  
    OP
       2016-12-03 00:19:30 +08:00 via Android
    @lakeview 你是说记录下每个短网址被访问的次数吗?
    timothyye
        14
    timothyye  
    OP
       2016-12-03 00:21:09 +08:00 via Android
    @YORYOR 就是用了网上一个比较通用的短网址算法,一次生成四个短网址,我只是取了其中一个,其实还可以判断这四个是否跟已有短网址重叠,这个代码还可以优化
    LazyZhu
        15
    LazyZhu  
       2016-12-03 00:24:47 +08:00   1
    lakeview
        16
    lakeview  
       2016-12-03 00:25:31 +08:00
    @timothyye 是的, google 的短网址服务器可以当一个样板, https://goo.gl/
    timothyye
        17
    timothyye  
    OP
       2016-12-03 00:25:54 +08:00 via Android
    @lakeview 谢谢,空了我看看
    timothyye
        18
    timothyye  
    OP
       2016-12-03 00:26:18 +08:00 via Android
    @LazyZhu 谢谢
    lakeview
        19
    lakeview  
       2016-12-03 00:28:17 +08:00
    顺便说下, google 开放了短网址的 api ,大概直接调用就好了,哈哈
    timothyye
        20
    timothyye  
    OP
       2016-12-03 00:28:43 +08:00 via Android
    @scnace 同拖延症……
    timothyye
        21
    timothyye  
    OP
       2016-12-03 00:29:24 +08:00 via Android
    @lakeview API 也可以有
    scnace
        22
    scnace  
       2016-12-03 00:31:47 +08:00 via Android
    @timothyye 人艰不拆 还是加到 TODOs 里面吧。
    raincious
        23
    raincious  
       2016-12-03 00:36:13 +08:00 via Android
    看了下貌似核心代码就 utils.ShortenURL ,感觉没什么意义。不可以加上统计和自定义功能之类。

    而且碰撞处理就是 overwrite ?
    raincious
        24
    raincious  
       2016-12-03 00:37:04 +08:00 via Android
    @raincious

    - 不可以加上统计和自定义功能之类。
    + 可以加上统计和自定义功能之类。
    timothyye
        25
    timothyye  
    OP
       2016-12-03 00:40:19 +08:00 via Android
    @raincious 现在碰撞处理确实是覆盖,哈哈,后期可以优化
    TonyChol
        26
    TonyChol  
       2016-12-03 03:46:22 +08:00   1
    我之前试着用 React 写前端的时候也试着写了这么一个类似的服务: https://zbcai.xyz
    sfwn
        27
    sfwn  
       2016-12-03 10:21:18 +08:00
    66666 社长
    P0P
        28
    P0P  
       2016-12-03 11:03:22 +08:00
    https://ooo.0o0.ooo/2016/12/03/584235df93fe3.png

    http://biturl.top/qmqmUj
    Cpcong
        29
    Cpcong  
       2016-12-03 12:41:34 +08:00
    @newworld 我前段时间倒是用 php 写过,你可以参考下 https://github.com/Cpcong/roc
    timothyye
        30
    timothyye  
    OP
       2016-12-03 13:37:49 +08:00 via Android
    @P0P 有 bug ,哈哈
    timothyye
        31
    timothyye  
    OP
       2016-12-03 20:33:47 +08:00
    @P0P bug 已修……
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3310 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 04:42 PVG 12:42 LAX 20:42 JFK 23:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86