🚀自己写的短链网址前后端源码🚀 (目前已直接对接 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:str
url: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
为本项目提供的许可证。