🚀自己写的短链网址前后端源码🚀 (目前已直接对接 oss)
[目前已支持使用 notion
的 database
做数据源]
[目前已支持 Python 函数 直接进行 308 跳转 🚀]
[如果域名有备案推荐使用 308 跳转(腾讯云函数)]
示例地址: tuo.icodeq.com/dream
界面
原理
- 新版原理为
vercel
获取到数据,然后 308 跳转 (用旧版的话把index-location
改成index
就行了。
原理很简单,就是利用
404 页面
会捕获所有请求这一特性然后再用
window.location.href
获取到当前访问的url
接着去获取一个
json
文件,利用上面的当前访问url
查字典,查不到就跳转到默认主页查到字典了就
window.location.replace()
Json 格式 (专门写了一个工具来生成和维护这个数据,见 Releases )
{
"dream": "https://dream-plan.cn/",
"abcd": "https://tuostudy.vercel.app/api?path=/📺 020# 单词视频/📁 扇贝单词(新)/托福中级.mp4&raw=true",
"abcde": "https://tuostudy.vercel.app/📺 020# 单词视频/📁 官方原版(同步)/📁 人教版高中英语单词必修1~选修11",
"test": "https://tuostudy.vercel.app/🔊 030# 课本音频/📁 英语",
"test2": "https://tuostudy.vercel.app/🔊 030# 课本音频/📁 英语/📁 03# 高考听力/2019年",
"vip": "https://tuostudy.vercel.app/📺 020# 单词视频/📁 不背单词(超全)/📁 07# 固定搭配词组短语系列(付费)",
"vip1": "https://tuostudy.vercel.app/api?path=/📺 020# 单词视频/📁 不背单词(超全)/📁 07# 固定搭配词组短语系列(付费)/中考词组.mp4&raw=true",
"shanbei": "https://tuostudy.vercel.app/📜 050# 单词文本/📁 02# 扇贝单词(新)/",
"xiaoxuetxt": "https://tuostudy.vercel.app/📜 050# 单词文本/📁 01# 墨墨单词(超全)/📁 03# 带中文释义版/1.全国各大教材版本中小学同步/人教版/",
"xiaoxuemp3": "https://tuostudy.vercel.app/🔊 030# 课本音频/📁 英语/📁 01# 中小学同步单词课文录音/小学/人教版/"
}
代码
用法
- 新版文档用法为将
/api/308/index.py
中的OSS
链接改成自己的然后部署至vercel
就能用了
以下为旧版用法(index-location
)
- 修改
404.html
和index.html
中的这些部分 (url
和long
的值)
ajax({ method: 'GET', url: 'https://tuo-site.oss-cn-beijing.aliyuncs.com/data.json', success: function (OriginalFromActivity) { //在这里对获取的数据经常操作 console.log(OriginalFromActivity) url = window.location.href.split('/').pop() long = OriginalFromActivity[url] if(long === undefined) { // 只能用 === 运算来测试某个值是否是未定义的 long = 'https://tuostudy.vercel.app'} console.log(long) window.location.replace(long) } })
修改 网页前端,改成自己喜欢的样子
将网页部署到
github
或者gitee
或者vercel
上面打开 在 图欧君短链生成器-v4.x 下载的
图欧君短链生成器-v4.x
, 或者直接运行/python-CLI
目录下的源码根据提示开始添加短链 (
OSS
详情设置请参阅官网配置,若不是使用的OSS
,请使用local
版本)本工具有四种模式 1. 自定义生成短链 2. 设置要生成的短链位数 ,自动生成短链 3. 删除或修改短链模式 4. 查阅模式(只读模式) 0. 退出
~添加短链完成后将
data.json
文件传到Github
或者Gitee
或者Vercel
或者OSS
或者随便一个云存储~本工具自动同步 oss ,详情参阅 github.com/zkeq/Tuostudy-Short-url/releases.. 🚀🚀🚀🚀
请确保你第六步上传数据得到的
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
目录下才会生效,那么链接就变长了一点,不够优雅腾讯云不备案生成的链接就是个笑话
注:这里的腾讯云和
notion
可以分别替代vercel
和OSS
具体用法自行理解。
vercel
示例: tuo.icodeq.com/api/308?dream
接口示例
序号 | 说明 | 示例 |
1 | 404根目录主链接 | tuo.icodeq.com/dream |
2 | 根目录索引 | tuo.icodeq.com/?dream |
3 | vercel-oss-api | tuo.icodeq.com/api/?dream |
3 | vercel-notion-api | tuo.icodeq.com/api/notion/?dream |
源码以及相关链接
序号 | 说明 | 链接 |
1 | Github 仓库 (会更新) | github.com/zkeq/Tuostudy-Short-url |
2 | Gitee 仓库 (会更新) | gitee.com/zkeq/Tuostudy-Short-url |
3 | 本文PDF格式 | lanzoul.com/iDzgM003x1yh |
赞助
感谢 JetBrains
为本项目提供的许可证。