🚀自己写的短链网址前后端源码🚀 (目前已直接对接 oss)
[目前已支持使用 notion 的 database 做数据源]
[目前已支持 Python 函数 直接进行 308 跳转 🚀]
[如果域名有备案推荐使用 308 跳转(腾讯云函数)]
界面

原理
- 新版原理为
vercel获取到数据,然后 308 跳转 (用旧版的话把index-location改成index就行了。
原理很简单,就是利用
404 页面会捕获所有请求这一特性然后再用
window.location.href获取到当前访问的url接着去获取一个
json文件,利用上面的当前访问url查字典,查不到就跳转到默认主页查到字典了就
window.location.replace()
Json 格式 (专门写了一个工具来生成和维护这个数据,见 Releases )
代码
用法
- 新版文档用法为将
/api/308/index.py中的OSS链接改成自己的然后部署至vercel就能用了
以下为旧版用法(index-location)
- 修改
404.html和index.html中的这些部分 (url和long的值)
修改 网页前端,改成自己喜欢的样子
将网页部署到
github或者gitee或者vercel上面打开 在 图欧君短链生成器-v4.x 下载的
图欧君短链生成器-v4.x, 或者直接运行/python-CLI目录下的源码根据提示开始添加短链 (
OSS详情设置请参阅官网配置,若不是使用的OSS,请使用local版本)
添加短链完成后将data.json文件传到Github或者Gitee或者Vercel或者OSS或者随便一个云存储本工具自动同步 oss ,详情参阅 https://github.com/zkeq/Tuostudy-Short-url/releases/tag/v4.0.0 🚀🚀🚀🚀
请确保你第六步上传数据得到的
url可以直接访问并且第一步填写的url中的值完全一样(下文有
notion做数据源)🚀 enjoy 🚀
后续维护
- 请在
图欧君短链生成器-v4.x中进行后续操作。
另一种思路(不大推荐)
利用
vercel的云函数,使用python渲染完成文件后返回前端
使用 notion 的 database 做数据源
创建一张
database表(注意格式. 字段:Short:strurl:url);创建一个集成;给集成加读权限获取到你的 notion
sk将
SK和database的id填入/api/notion/index.py中databese数据表格式如下图

直接访问
/api/notion/?dream即可跳转(后端渲染完成后返回)
具体参见:/api/notion或使用
/api/notion-back-json做数据源(后端只做数据库)
具体参见:/api/notion-back-json
直接使用 308 跳转 /api/308
将
/api/308目录下的函数部署至vercel或腾讯云函数自行选用数据库对接
有备案域名的话更推荐
腾讯云函数因为链接很干净而
vercel的话,应该是要把函数文件放在api目录下才会生效,那么链接就变长了一点,不够优雅腾讯云不备案生成的链接就是个笑话
你管这玩意叫短链?😂 https://service-cetfbmjm-1303831731.gz.apigw.tencentcs.com/release/helloworld-1645706447/dream
注:这里的腾讯云和
notion可以分别替代vercel和OSS具体用法自行理解。
vercel示例: https://tuo.icodeq.com/api/308?dream
接口示例
| 序号 | 说明 | 示例 |
|---|---|---|
| 1 | 404根目录主链接 | http://tuo.icodeq.com/dream |
| 2 | 根目录索引 | http://tuo.icodeq.com/?dream |
| 3 | vercel-oss-api | http://tuo.icodeq.com/api/?dream |
| 3 | vercel-notion-api | http://tuo.icodeq.com/api/notion/?dream |
源码以及相关链接
| 序号 | 说明 | 链接 |
|---|---|---|
| 1 | Github 仓库 (会更新) |
https://github.com/zkeq/Tuostudy-Short-url |
| 2 | Gitee 仓库 (会更新) |
https://gitee.com/zkeq/Tuostudy-Short-url |
| 3 | 本文PDF格式 | https://lanzoul.com/iDzgM003x1yh |
赞助
感谢 JetBrains 为本项目提供的许可证。









