Skip to content

是一个基于.NET开源的短链生成及监控系统,它包含了短链的生成、短链跳转长链、短链访问次数以及Web监控页面,可以帮助我们更容易地生成短链、监控短链!

License

Notifications You must be signed in to change notification settings

Maoter/SuperShortLink

 
 

Repository files navigation

GitHub license

Nuget包

Package Name Version Downloads
SuperShortLink.Core

SuperShortLink

是一个基于.NET开源的短链生成及监控系统,它包含了短链的生成、短链跳转长链、短链访问次数以及Web监控页面,可以帮助我们更容易地生成短链、监控短链!


功能介绍

  • 基于.NET 6开发的后端及Web管理界面
  • 支持自定义短链长度
  • 支持在线短链生成及跳转长链
  • 统计短链访问次数
  • 支持多种持久化方式:MySQL/PostgreSQL/SqlServer(2012及以上)
  • 傻瓜式配置,开箱即用

Web界面


基本使用

Step 1 : 安装包

通过Nuget安装包

Install-Package SuperShortLink.Core

Step 2 : 配置 Startup 启动类

下面提供一个简单的使用PostgreSQL,短链长度为6的Demo示例

public class Startup
{
    //...
    
    public void ConfigureServices(IServiceCollection services)
    {
        //configuration
        services.AddShortLink(option =>
        {
            option.ConnectionString = "Server=127.0.0.1;Port=5432;User Id=uid;Password=pwd;Database=db;";
            option.DbType = DatabaseType.PostgreSQL;
            option.Secrect = "s9LFkgy5RovixI1aOf8UhdY3r4DMplQZJXPqebE0WSjBn7wVzmN2Gc6THCAKut";
            option.CodeLength = 6;
        });
    }    
}

Step 3 : Controller接口定义

[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;
    }
}

更多示例

  1. 查看 使用例子
  2. 查看 测试用例

建表SQL

MySQL

-- ----------------------------
-- MySQL
-- ----------------------------
CREATE TABLE short_link (
	id				INT ( 11 )		NOT NULL AUTO_INCREMENT,
	short_url		VARCHAR ( 255 ) NOT NULL,
	origin_url		VARCHAR ( 255 ) NOT NULL,
	create_time		TIMESTAMP ( 0 ) NOT NULL,
	update_time		TIMESTAMP ( 0 ) NOT NULL,
	access_count	INT ( 11 )		NOT NULL,
PRIMARY KEY ( id ) USING BTREE 
)

PostgreSQL

-- ----------------------------
-- PostgreSQL
-- ----------------------------
CREATE TABLE short_link (
	id				SERIAL			NOT NULL,
	short_url		VARCHAR ( 128 )	NOT NULL,
	origin_url		VARCHAR ( 128 ) NOT NULL,
	create_time		TIMESTAMP		NOT NULL,
	update_time		TIMESTAMP		NOT NULL,
	access_count	INT4			NOT NULL
CONSTRAINT pk_short_link PRIMARY KEY ( id ) 
);

SQLServer

-- ----------------------------
-- SQLServer
-- ----------------------------
CREATE TABLE short_link (
	id INT PRIMARY KEY IDENTITY ( 1, 1 ),
	short_url VARCHAR ( 255 ) NOT NULL,
	origin_url VARCHAR ( 255 ) NOT NULL,
	create_time datetime2 ( 0 ) NOT NULL,
	update_time datetime2 ( 0 ) NOT NULL,
	access_count INT NOT NULL 
);

About

是一个基于.NET开源的短链生成及监控系统,它包含了短链的生成、短链跳转长链、短链访问次数以及Web监控页面,可以帮助我们更容易地生成短链、监控短链!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 93.1%
  • SCSS 3.1%
  • CSS 1.9%
  • C# 0.9%
  • Less 0.8%
  • HTML 0.2%