• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

『高可用短链服务』.NET开源项目SuperShortLink打造稳定可靠的短链转换系统

武飞扬头像
老陈聊架构
帮助1

学新通
学新通
📣读完这篇文章里你能收获到

  • 了解博主的开源短链项目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
系列文章
更多 icon
同类精品
更多 icon
继续加载