云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
要点
将一个长url生成一个短链接是很常见的需求,本文尝试通过serverless的方式来提供这个功能,主要有两部分内容:
1.一个简单的短链接生成方案
2.scf函数如何使用第三方依赖库
如何生成短链接
这里使用了一个很简单的方案,提交url时,先通过mysql的自增id获取一个整数,表结构大致如下:
这样insert数据的时候,id会自增,获取到这个自增的整数值,然后使用hashids这个库将这个id转换为一个短字符串:
hashids.org/python/
将这个短字符串作为短网址域名的路径就可以使用了。
scf如何使用第三方库
由于使用到了hashids这个第三方库,就需要将这个库也打包一起上传,这里需要注意的要点就是安装hashids库的命令:
注意后面的 -t 参数,将依赖库安装在云函数的代码所在的目录,这样在使用scf命令打包上传时,依赖库也会被一起上传
直接贴代码
测试
在本地创建一个测试数据文件,event.json:
本地测试验证:
将返回的短字符串拼接到你想使用的域名后面,就可以获得一个自己的短网址生成器了:
需要注意的问题
经尝试,这个sdk里面获取到的cousor对象无法获取lastrowid,也就是取不到每次插入记录后的自增id,所以这里自行使用pymysql来操作数据库,所以务必记得在最后要手动关闭链接。
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
原文发布时间:2020-05-10
本文作者:thor_lee
本文来自:“掘金,了解相关信息可以关注“掘金”