吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6260|回复: 14
收起左侧

[其他转载] Tuostudy-Short-url 自己写的短链网址前后端源码 v4.0.1 ( 已对接 oss / notion )

  [复制链接]
The-rapist 发表于 2022-2-15 16:37
本帖最后由 The-rapist 于 2022-2-19 23:11 编辑
🚀自己写的短链网址前后端源码🚀 (目前已直接对接oss)
[目前已支持使用 notiondatabase 做数据源]

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

界面

1

原理
  • 原理很简单,就是利用 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# 中小学同步单词课文录音/小学/人教版/"
}
代码
用法
  1. 修改 404.htmlindex.html 中的这些部分 ( urllong 的值)

    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)
                }
 })
  1. 修改 网页前端,改成自己喜欢的样子

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

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

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

本工具有四种模式

1. 自定义生成短链
2. 设置要生成的短链位数 ,自动生成短链
3. 删除或修改短链模式
4. 查阅模式(只读模式)
0. 退出
  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. 🚀 enjoy 🚀

后续维护
  • 请在 图欧君短链生成器-v4.x中进行后续操作。
另一种思路(不大推荐)

使用 notiondatabase 做数据源

  1. 创建一张 database 表;创建一个集成;给集成加 读权限

  2. 获取到你的 notion sk

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

  4. databese 数据表格式如下图

2

  1. 直接访问 /api/notion/?dream 即可跳转

  2. 或使用 api/notion-back-json 做数据源

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

接口示例

序号 说明 示例
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 兰奏云代码(不会更新) https://lanzoul.com/i0rIH003wk7i
4 本文PDF格式 https://lanzoul.com/iDzgM003x1yh

免费评分

参与人数 4吾爱币 +10 热心值 +4 收起 理由
a1554688500 + 1 + 1 谢谢@Thanks!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
noah88 + 1 + 1 谢谢@Thanks!
lcx12901 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| The-rapist 发表于 2022-2-17 15:41

【2022-02-17 : 目前已升级 v4.0 oss 在线版】
详情:https://github.com/zkeq/Tuostudy-Short-url/releases/tag/v4.0.0

图欧君短链生成器-v4.0.0  🚀 OSS 在线版 🚀

本次更新为 oss 在线版。

特性

  1. 第一次输入自己的oss配置信息后,配置文件将存储在本地。

  2. 第二次打开的时候会自动读取本地的文件,自动加载

  3. 添加或删除或更新文件后,会自动同步至oss!

  4. 网址跳转页采用随机数方式,无缓存实时可用。

说明

  • 使用前请提前创建文件夹,使用后内有 敏感数据 ,请勿随意分享他人。

1

 楼主| The-rapist 发表于 2022-2-19 22:20
2022-2-19 更新内容

使用 notiondatabase 做数据源

  1. 创建一张 database 表;创建一个集成;给集成加 读权限

  2. 获取到你的 notion sk

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

  4. databese 数据表格式如下图

2

接口示例

序号 说明 示例
1 vercel-notion-api http://tuo.icodeq.com/api/notion/?dream
 楼主| The-rapist 发表于 2022-2-17 19:39
本帖最后由 The-rapist 于 2022-2-17 19:57 编辑
slslsl 发表于 2022-2-17 17:44
LZ像短链这种功能一般来说应该都是生成数量会比较大的,所以建议还是将数据存到数据库里面,然后加一层缓存 ...

量大的话可以去考虑 redis
redis 是一个远程字典服务,一般官网有相关代码,应该是比较容易实现的..

1

 import redis

r = redis.Redis(
  host= 'xxxxxxxxxxxxxxxxx.upstash.io',
  port= 'xxxxx',
  password= 'xxxxxxxxxxxxxxxxxxxxxx', ssl=True)

r.set('foo','bar')
print(r.get('foo'))
自己搞数据库的话感觉成本太大了.. 毕竟这个项目的定位是无服务器
单纯是有个域名 有实现短链需求的,

我在另一个项目用到的一个 redis 服务 https://upstash.com/redis


我测试了现在的项目
10 万条记录 的情况下,还是可以实现 1 秒内跳转的

(当然如果用户网速低于 2mb/s 的话,可以考虑我的服务端渲染实现思路【利用 vercel 云函数】:https://github.com/zkeq/Tuostudy-Short-url/tree/main/api

10w 条记录 测试地址: http://tuo.icodeq.com/10w_test/?99999

2

15126819695 发表于 2022-2-15 16:48
思路挺好 学习了
tencentma 发表于 2022-2-15 16:54
Tuostudy-Short-url 好用啊
Duzit 发表于 2022-2-15 17:19
不错 学习了
finky 发表于 2022-2-15 17:35
好强,下载下来看看
我今天是大佬 发表于 2022-2-15 17:41
虽然不是很懂, 但是还是觉得很强
noah88 发表于 2022-2-15 22:57
感谢源码分享,用空折腾一下
slslsl 发表于 2022-2-17 17:44
LZ像短链这种功能一般来说应该都是生成数量会比较大的,所以建议还是将数据存到数据库里面,然后加一层缓存查询提升效率,也更方便管理
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 01:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表