『高可用短链服务』.NET开源项目SuperShortLink打造稳定可靠的短链转换系统
📣读完这篇文章里你能收获到
- 了解博主的开源短链项目SuperShortLink
- 学习长链转短链、短链跳转长链、短链访问统计的原理及方法
- 掌握内部其他项目的多种接入方式
一、SuperShortLink
这是博主开源的一个基于.NET开源的短链生成及监控系统,它包含了在线生成短链、短链跳转长链、支持短链访问次数以及Web监控页面,可以帮助我们更容易地生成短链、监控短链!
1. 源码地址
2. 功能介绍
- 基于.NET 6开发的后端及Web管理界面
- 支持自定义短链长度
- 支持在线短链生成及跳转长链
- 支持实时统计短链访问次数
- 支持多种持久化方式:MySQL/PostgreSQL/SqlServer(2012及以上)
- 傻瓜式配置,开箱即用
3. 架构设计文档
二、构建运行项目
1. 运行项目
Step 1 : 打开项目
通过VisualStudio打开 SuperShortLink.sln
Step 2 : 配置数据库
- 可选:
MySQL
/PostgreSQL
/SqlServer
(2012及以上) - 在
appsetting.json
文件中更新连接字符串
"ShortLink": {
"Secrect": "vZCN8VhSge13UQrYjBTwKulWqsIOAocL0DkmRdxPMJf5tiHbn72z69aXpGyFE4",// 随机打乱的Base62编码
"CodeLength": 6, //短链长度
"DbType": "PostgreSQL", //DatabaseType:MySQL/PostgreSQL/SqlServer(仅支持SQL Server2012及以上)
"ConnectionString": "Server=127.0.0.1;Port=5432;User Id=uid;Password=pwd;Database=test_db;",//数据库链接字符串
"LoginAcount": "admin", //登陆账号
"LoginPassword": "123456" //登陆密码
}
Step 3 : 执行数据库建表SQL 建表SQL语句
Step 4 : 运行项目
- 登陆管理后台:{域名}/home/index
- 默认登陆账号密码:admin 123456
2. 配置更新
- 修改账号密码:更新
appsetting.json
的LoginAcount及LoginPassword - 修改随机秘钥:可直接运行测试用例随机生成新秘钥:
ShortLinkTest/Generate_Key_Be_Valid
,然后更新appsetting.json
的Secrect
三、项目接入
1. 通过API扩展类库接入(推荐)
API类库是基于HTTP请求,适合将接口开放给其他平台/系统调用,对应用屏蔽了Token,时间戳,应用Code等所需携带的请求细节
Step 1 : 安装包,通过Nuget安装包
Install-Package SuperShortLink.Api
Step 2 : 配置 Startup 启动类
public class Startup
{
//...
public void ConfigureServices(IServiceCollection services)
{
//configuration
services.AddShortLinkApi(option =>
{
option.ApiDomain = "短链服务域名";
option.AppSecret = "应用秘钥";
option.AppCode = "应用Code";
});
}
}
Step 3 : IShortLinkApiService服务接口使用
[Route("api/[controller]/[Action]")]
public class ShortLinkController : Controller
{
private readonly IShortLinkApiService _apiService;
public ShortLinkController(IShortLinkApiService apiService)
{
_apiService = apiService;
}
/// <summary>
/// 解析生成短网址
/// </summary>
/// <param name="url">长链接</param>
/// <returns></returns>
[HttpPost]
public async Task<string> Generate(string url)
{
var short_url = await _apiService.GenerateAsync(url);
return short_url;
}
}
2. 通过Core扩展类库接入
Core类库是直连数据库的,适合由内部平台/系统调用,不需经过授权验证
Step 1 : 安装包,通过Nuget安装包
Install-Package SuperShortLink.Core
Step 2 : 配置 Startup 启动类
public class Startup
{
//...
public void ConfigureServices(IServiceCollection services)
{
//configuration
services.AddShortLink(option =>
{
option.ConnectionString = "数据库链接";
option.DbType = "数据库类型";//可选:DatabaseType.PostgreSQL/MySQL/SqlServer
option.Secrect = "打乱后的Base62编码",
option.CodeLength = "短链长度";
});
}
}
Step 3 : IShortLinkService服务接口使用
[Route("api/[controller]/[Action]")]
public class ShortLinkController : Controller
{
private readonly IShortLinkService _shortLinkService;
public ShortLinkController(IShortLinkService shortLinkService)
{
_shortLinkService = shortLinkService;
}
/// <summary>
/// 解析生成短网址
/// </summary>
/// <param name="url">长链接</param>
/// <returns></returns>
[HttpPost]
public async Task<string> Generate(string url)
{
var short_url = await _shortLinkService.GenerateAsync(url);
return short_url;
}
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggbijb
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01