4ye短网址服务 - mindpin/knowledge-space-net-lib GitHub Wiki
4ye.me 以如下形式提供短网址服务
对于任意URL地址,在 4ye.me 中都可通过一个短网址来进行重定向,短网址形如:
s.4ye.me/xxxxxx
xxxxxx 代表 6个英文大小写字母或数字。
取值范围为
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
共 26 + 26 + 10 = 62 个字符
(可以直接照搬原来的全局 randstr 方法来生成这个字符串)
实现一个短网址类 ShortUrl,使用方法如下:
su = ShortUrl.parse(url)
su.short_url # 短网址
su.long_url # 长网址
例如:
su = ShortUrl.parse 'http://oppia.4ye.me/'
su.short_url # -> http://s.4ye.me/8szyc5
su.long_url # -> http://oppia.4ye.me/
传入的网址必须以 http:// 开头,否则不合法。传入的网址被当做一个字符串整体处理。
http://oppia.4ye.me/
和 http://oppia.4ye.me
被认为是不同的网址
调用6位随机字符串生成方法生成随机串,然后把随机串和原始网址存入 mongoDB 数据库
生成6位串时需要先查一下库,看看有没有重复的6位串。如果有就重新生成
当把一个短网址用 parse 方法处理时,判断这个网址是短网址,然后查数据库:
su = ShortUrl.parse 'http://s.4ye.me/8szyc5'
su.short_url # -> http://s.4ye.me/8szyc5
su.long_url # -> 如果数据库找到对应长网址,返回长网址 http://oppia.4ye.me/
su.long_url # -> 如果数据库找不到对应长网址,返回 nil
提供一个能够访问的 web 界面,部署在 s.4ye.me。 此 web 界面能够输入网址,调用 parse 方法,把返回的 long_url 和 short_url 显示出来。