🚀自己写的短链网址前后端源码🚀 (目前已直接对接 oss)

[目前已支持使用 notiondatabase 做数据源]
[目前已支持 Python 函数 直接进行 308 跳转 🚀]
[如果域名有备案推荐使用 308 跳转(腾讯云函数)]

示例地址: http://tuo.icodeq.com/dream

界面

1

原理
  • 新版原理为 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
  1. 修改 404.htmlindex.html 中的这些部分 ( urllong 的值)
  1. 修改 网页前端,改成自己喜欢的样子

  2. 将网页部署到 github 或者 gitee 或者 vercel 上面

  3. 打开 在 图欧君短链生成器-v4.x 下载的 图欧君短链生成器-v4.x , 或者直接运行 /python-CLI 目录下的源码

  4. 根据提示开始添加短链 ( OSS 详情设置请参阅官网配置,若不是使用的 OSS ,请使用 local 版本)

  1. 添加短链完成后将 data.json 文件传到 Github 或者 Gitee 或者 Vercel 或者 OSS 或者随便一个云存储

  2. 本工具自动同步 oss ,详情参阅 https://github.com/zkeq/Tuostudy-Short-url/releases/tag/v4.0.0 🚀🚀🚀🚀

  3. 请确保你第六步上传数据得到的 url 可以直接访问并且第一步填写的 url 中的值完全一样

  4. (下文有 notion 做数据源)

  5. 🚀 enjoy 🚀

后续维护

  • 请在 图欧君短链生成器-v4.x 中进行后续操作。

另一种思路(不大推荐)

使用 notiondatabase 做数据源

Notion 模板:你也可以试着修改这个数据库来增加记录

  1. 创建一张 database 表(注意格式. 字段:Short:str url:url );创建一个集成;给集成加 读权限

  2. 获取到你的 notion sk

  3. SKdatabaseid 填入 /api/notion/index.py

  4. databese 数据表格式如下图

2

  1. 直接访问 /api/notion/?dream 即可跳转(后端渲染完成后返回)
    具体参见:**/api/notion**

  2. 或使用 /api/notion-back-json 做数据源(后端只做数据库)
    具体参见:**/api/notion-back-json**

  3. 数据源返回示例 https://tuo.icodeq.com/api/notion-back-json

直接使用 308 跳转 /api/308

  1. /api/308 目录下的函数部署至 vercel腾讯云函数

  2. 自行选用数据库对接

  3. 有备案域名的话更推荐 腾讯云函数 因为链接很干净

  4. vercel 的话,应该是要把函数文件放在 api 目录下才会生效,那么链接就变长了一点,不够优雅

  5. 腾讯云不备案生成的链接就是个笑话

  6. 你管这玩意叫短链?😂 https://service-cetfbmjm-1303831731.gz.apigw.tencentcs.com/release/helloworld-1645706447/dream

注:这里的腾讯云和 notion 可以分别替代 vercelOSS 具体用法自行理解。

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 为本项目提供的许可证。

JetBrains Logo (Main) logo. PyCharm logo.