[{"data":1,"prerenderedAt":677},["ShallowReactive",2],{"navigation":3,"docs-\u002Fdocs\u002Fguide\u002Fintroduction":72,"surround-\u002Fdocs\u002Fguide\u002Fintroduction":673},[4],{"title":5,"path":6,"stem":7,"children":8,"page":38},"Docs","\u002Fdocs","docs",[9,39],{"title":10,"path":11,"stem":12,"children":13,"page":38},"Guide","\u002Fdocs\u002Fguide","docs\u002F1.guide",[14,18,22,26,30,34],{"title":15,"path":16,"stem":17},"介绍","\u002Fdocs\u002Fguide\u002Fintroduction","docs\u002F1.guide\u002F1.introduction",{"title":19,"path":20,"stem":21},"快速开始","\u002Fdocs\u002Fguide\u002Fquick-start","docs\u002F1.guide\u002F2.quick-start",{"title":23,"path":24,"stem":25},"配置说明","\u002Fdocs\u002Fguide\u002Fconfiguration","docs\u002F1.guide\u002F3.configuration",{"title":27,"path":28,"stem":29},"存储配置","\u002Fdocs\u002Fguide\u002Fstorage","docs\u002F1.guide\u002F4.storage",{"title":31,"path":32,"stem":33},"生产部署","\u002Fdocs\u002Fguide\u002Fdeployment","docs\u002F1.guide\u002F5.deployment",{"title":35,"path":36,"stem":37},"第三方客户端","\u002Fdocs\u002Fguide\u002Fclients","docs\u002F1.guide\u002F6.clients",false,{"title":40,"path":41,"stem":42,"children":43,"page":38},"Api","\u002Fdocs\u002Fapi","docs\u002F2.api",[44,48,52,56,60,64,68],{"title":45,"path":46,"stem":47},"概述","\u002Fdocs\u002Fapi\u002Foverview","docs\u002F2.api\u002F1.overview",{"title":49,"path":50,"stem":51},"认证","\u002Fdocs\u002Fapi\u002Fauthentication","docs\u002F2.api\u002F2.authentication",{"title":53,"path":54,"stem":55},"文件上传","\u002Fdocs\u002Fapi\u002Fupload","docs\u002F2.api\u002F3.upload",{"title":57,"path":58,"stem":59},"文件管理","\u002Fdocs\u002Fapi\u002Ffiles","docs\u002F2.api\u002F4.files",{"title":61,"path":62,"stem":63},"相册","\u002Fdocs\u002Fapi\u002Falbums","docs\u002F2.api\u002F5.albums",{"title":65,"path":66,"stem":67},"API Token","\u002Fdocs\u002Fapi\u002Ftokens","docs\u002F2.api\u002F6.tokens",{"title":69,"path":70,"stem":71},"管理员 API","\u002Fdocs\u002Fapi\u002Fadmin","docs\u002F2.api\u002F7.admin",{"id":73,"title":15,"body":74,"description":667,"extension":668,"meta":669,"navigation":670,"path":16,"seo":671,"stem":17,"__hash__":672},"docs\u002Fdocs\u002F1.guide\u002F1.introduction.md",{"type":75,"value":76,"toc":659},"minimark",[77,82,90,93,97,137,140,240,243,250,530,533,631,634,655],[78,79,81],"h2",{"id":80},"什么是-kite","什么是 Kite？",[83,84,85,89],"p",{},[86,87,88],"strong",{},"Kite"," 是一个轻量、快速、现代化的静态资源托管平台。它远不止一个图床 —— 在同一份单二进制中，Kite 同时托管图片、音频、视频和任意静态文件，并提供完整的多用户、多存储后端、相册管理和 API Token 授权能力。",[83,91,92],{},"就像天空中翱翔的风筝一样，Kite 旨在为你提供无缝、轻松的全类型媒体资源托管与分发体验。",[78,94,96],{"id":95},"为什么选择-kite","为什么选择 Kite？",[98,99,100,107,113,119,125,131],"ul",{},[101,102,103,106],"li",{},[86,104,105],{},"极简部署","：单个可执行文件，内嵌 SQLite，拖到服务器即可运行，没有任何外部依赖。",[101,108,109,112],{},[86,110,111],{},"全类型托管","：图片、音频、视频、压缩包、文档 —— 任意格式均可管理。",[101,114,115,118],{},[86,116,117],{},"多存储后端","：本地磁盘、阿里云 OSS、腾讯云 COS、Cloudflare R2、MinIO，通过 S3 兼容层自由切换。",[101,120,121,124],{},[86,122,123],{},"现代栈","：Go (Gin) + React 19 + Tailwind v4，前后端均内嵌在二进制中。",[101,126,127,130],{},[86,128,129],{},"协议兼容","：上传接口兼容兰空 v2，PicGo 等主流图床客户端可直接使用。",[101,132,133,136],{},[86,134,135],{},"安全默认","：JWT 鉴权、API Token、速率限制、文件去重、用户配额。",[78,138,139],{"id":139},"核心特性",[141,142,143,156],"table",{},[144,145,146],"thead",{},[147,148,149,153],"tr",{},[150,151,152],"th",{},"特性",[150,154,155],{},"说明",[157,158,159,168,176,184,192,200,208,216,224,232],"tbody",{},[147,160,161,165],{},[162,163,164],"td",{},"🚀 单二进制部署",[162,166,167],{},"前后端编译为一个可执行文件，SQLite 内嵌",[147,169,170,173],{},[162,171,172],{},"📦 零配置启动",[162,174,175],{},"首次启动自动创建数据库、默认存储与管理员账号",[147,177,178,181],{},[162,179,180],{},"🪄 Web 安装向导",[162,182,183],{},"浏览器中完成站点初始化，无需编辑配置文件",[147,185,186,189],{},[162,187,188],{},"🖼️ 全格式支持",[162,190,191],{},"图片\u002F视频\u002F音频\u002F任意文件，自动识别 MIME",[147,193,194,197],{},[162,195,196],{},"☁️ 多存储后端",[162,198,199],{},"本地 \u002F S3 兼容（OSS \u002F COS \u002F R2 \u002F MinIO）",[147,201,202,205],{},[162,203,204],{},"🗂️ 相册管理",[162,206,207],{},"文件分组归类，支持公开相册",[147,209,210,213],{},[162,211,212],{},"🔐 API Token",[162,214,215],{},"为第三方工具颁发细粒度令牌",[147,217,218,221],{},[162,219,220],{},"👥 多用户 + 配额",[162,222,223],{},"用户角色、存储限额、游客上传可选",[147,225,226,229],{},[162,227,228],{},"🏷️ 自动缩略图",[162,230,231],{},"图片上传时自动生成 WebP 缩略图",[147,233,234,237],{},[162,235,236],{},"📊 探索广场",[162,238,239],{},"可选开启的公开图片广场",[78,241,242],{"id":242},"架构一览",[83,244,245,246,249],{},"Kite 采用经典的分层架构，所有业务围绕",[86,247,248],{},"文件","这一核心领域对象展开：",[251,252,257],"pre",{"className":253,"code":254,"language":255,"meta":256,"style":256},"language-mermaid shiki shiki-themes github-light github-dark","flowchart TB\n  subgraph FE[入口层]\n    Admin[React Admin\\n用户\u002F管理中心]\n    Site[Go Template\\n站点首页\u002F探索\u002F上传]\n  end\n\n  subgraph HTTP[HTTP 层]\n    Router[Gin Router + Middleware\\nCORS \u002F JWT \u002F RateLimit \u002F Admin]\n  end\n\n  subgraph SVC[服务层]\n    Auth[Auth Service]\n    File[File Service]\n    Image[Image Service]\n  end\n\n  subgraph DATA[数据访问层]\n    Repo[GORM Repository]\n  end\n\n  subgraph DB[数据库]\n    SQLite[(SQLite)]\n    MySQL[(MySQL)]\n    PG[(PostgreSQL)]\n  end\n\n  subgraph Storage[对象存储]\n    Local[(Local FS)]\n    S3[(S3 Compatible\\nOSS\u002FCOS\u002FR2\u002FMinIO)]\n  end\n\n  Admin --> Router\n  Site --> Router\n  Router --> Auth\n  Router --> File\n  Router --> Image\n  Auth --> Repo\n  File --> Repo\n  Image --> Repo\n  Repo --> SQLite\n  Repo --> MySQL\n  Repo --> PG\n  File --> Local\n  File --> S3\n  Image --> Local\n  Image --> S3\n","mermaid","",[258,259,260,269,275,281,287,293,300,306,312,317,322,328,334,340,346,351,356,362,368,373,378,384,390,396,402,407,412,418,424,430,435,440,446,452,458,464,470,476,482,488,494,500,506,512,518,524],"code",{"__ignoreMap":256},[261,262,265],"span",{"class":263,"line":264},"line",1,[261,266,268],{"class":267},"sVt8B","flowchart TB\n",[261,270,272],{"class":263,"line":271},2,[261,273,274],{"class":267},"  subgraph FE[入口层]\n",[261,276,278],{"class":263,"line":277},3,[261,279,280],{"class":267},"    Admin[React Admin\\n用户\u002F管理中心]\n",[261,282,284],{"class":263,"line":283},4,[261,285,286],{"class":267},"    Site[Go Template\\n站点首页\u002F探索\u002F上传]\n",[261,288,290],{"class":263,"line":289},5,[261,291,292],{"class":267},"  end\n",[261,294,296],{"class":263,"line":295},6,[261,297,299],{"emptyLinePlaceholder":298},true,"\n",[261,301,303],{"class":263,"line":302},7,[261,304,305],{"class":267},"  subgraph HTTP[HTTP 层]\n",[261,307,309],{"class":263,"line":308},8,[261,310,311],{"class":267},"    Router[Gin Router + Middleware\\nCORS \u002F JWT \u002F RateLimit \u002F Admin]\n",[261,313,315],{"class":263,"line":314},9,[261,316,292],{"class":267},[261,318,320],{"class":263,"line":319},10,[261,321,299],{"emptyLinePlaceholder":298},[261,323,325],{"class":263,"line":324},11,[261,326,327],{"class":267},"  subgraph SVC[服务层]\n",[261,329,331],{"class":263,"line":330},12,[261,332,333],{"class":267},"    Auth[Auth Service]\n",[261,335,337],{"class":263,"line":336},13,[261,338,339],{"class":267},"    File[File Service]\n",[261,341,343],{"class":263,"line":342},14,[261,344,345],{"class":267},"    Image[Image Service]\n",[261,347,349],{"class":263,"line":348},15,[261,350,292],{"class":267},[261,352,354],{"class":263,"line":353},16,[261,355,299],{"emptyLinePlaceholder":298},[261,357,359],{"class":263,"line":358},17,[261,360,361],{"class":267},"  subgraph DATA[数据访问层]\n",[261,363,365],{"class":263,"line":364},18,[261,366,367],{"class":267},"    Repo[GORM Repository]\n",[261,369,371],{"class":263,"line":370},19,[261,372,292],{"class":267},[261,374,376],{"class":263,"line":375},20,[261,377,299],{"emptyLinePlaceholder":298},[261,379,381],{"class":263,"line":380},21,[261,382,383],{"class":267},"  subgraph DB[数据库]\n",[261,385,387],{"class":263,"line":386},22,[261,388,389],{"class":267},"    SQLite[(SQLite)]\n",[261,391,393],{"class":263,"line":392},23,[261,394,395],{"class":267},"    MySQL[(MySQL)]\n",[261,397,399],{"class":263,"line":398},24,[261,400,401],{"class":267},"    PG[(PostgreSQL)]\n",[261,403,405],{"class":263,"line":404},25,[261,406,292],{"class":267},[261,408,410],{"class":263,"line":409},26,[261,411,299],{"emptyLinePlaceholder":298},[261,413,415],{"class":263,"line":414},27,[261,416,417],{"class":267},"  subgraph Storage[对象存储]\n",[261,419,421],{"class":263,"line":420},28,[261,422,423],{"class":267},"    Local[(Local FS)]\n",[261,425,427],{"class":263,"line":426},29,[261,428,429],{"class":267},"    S3[(S3 Compatible\\nOSS\u002FCOS\u002FR2\u002FMinIO)]\n",[261,431,433],{"class":263,"line":432},30,[261,434,292],{"class":267},[261,436,438],{"class":263,"line":437},31,[261,439,299],{"emptyLinePlaceholder":298},[261,441,443],{"class":263,"line":442},32,[261,444,445],{"class":267},"  Admin --> Router\n",[261,447,449],{"class":263,"line":448},33,[261,450,451],{"class":267},"  Site --> Router\n",[261,453,455],{"class":263,"line":454},34,[261,456,457],{"class":267},"  Router --> Auth\n",[261,459,461],{"class":263,"line":460},35,[261,462,463],{"class":267},"  Router --> File\n",[261,465,467],{"class":263,"line":466},36,[261,468,469],{"class":267},"  Router --> Image\n",[261,471,473],{"class":263,"line":472},37,[261,474,475],{"class":267},"  Auth --> Repo\n",[261,477,479],{"class":263,"line":478},38,[261,480,481],{"class":267},"  File --> Repo\n",[261,483,485],{"class":263,"line":484},39,[261,486,487],{"class":267},"  Image --> Repo\n",[261,489,491],{"class":263,"line":490},40,[261,492,493],{"class":267},"  Repo --> SQLite\n",[261,495,497],{"class":263,"line":496},41,[261,498,499],{"class":267},"  Repo --> MySQL\n",[261,501,503],{"class":263,"line":502},42,[261,504,505],{"class":267},"  Repo --> PG\n",[261,507,509],{"class":263,"line":508},43,[261,510,511],{"class":267},"  File --> Local\n",[261,513,515],{"class":263,"line":514},44,[261,516,517],{"class":267},"  File --> S3\n",[261,519,521],{"class":263,"line":520},45,[261,522,523],{"class":267},"  Image --> Local\n",[261,525,527],{"class":263,"line":526},46,[261,528,529],{"class":267},"  Image --> S3\n",[78,531,532],{"id":532},"技术栈",[141,534,535,545],{},[144,536,537],{},[147,538,539,542],{},[150,540,541],{},"层级",[150,543,544],{},"技术",[157,546,547,561,573,581,589,601,612,620],{},[147,548,549,552],{},[162,550,551],{},"HTTP 框架",[162,553,554],{},[555,556,560],"a",{"href":557,"rel":558},"https:\u002F\u002Fgithub.com\u002Fgin-gonic\u002Fgin",[559],"nofollow","Gin",[147,562,563,566],{},[162,564,565],{},"ORM",[162,567,568],{},[555,569,572],{"href":570,"rel":571},"https:\u002F\u002Fgorm.io\u002F",[559],"GORM",[147,574,575,578],{},[162,576,577],{},"数据库",[162,579,580],{},"SQLite（默认）\u002F MySQL \u002F PostgreSQL",[147,582,583,586],{},[162,584,585],{},"对象存储",[162,587,588],{},"本地文件系统 \u002F AWS S3 SDK v2",[147,590,591,594],{},[162,592,593],{},"图像处理",[162,595,596],{},[555,597,600],{"href":598,"rel":599},"https:\u002F\u002Fgithub.com\u002Fdisintegration\u002Fimaging",[559],"disintegration\u002Fimaging",[147,602,603,605],{},[162,604,49],{},[162,606,607,608,611],{},"JWT（",[258,609,610],{},"golang-jwt\u002Fjwt\u002Fv5","）",[147,613,614,617],{},[162,615,616],{},"管理前端",[162,618,619],{},"React 19 + TypeScript + Tailwind v4 + TanStack Query",[147,621,622,625],{},[162,623,624],{},"前台页面",[162,626,627,628],{},"Go ",[258,629,630],{},"html\u002Ftemplate",[78,632,633],{"id":633},"下一步",[98,635,636,642,648],{},[101,637,638,639,641],{},"阅读 ",[555,640,19],{"href":20}," 在 5 分钟内启动你的第一个实例",[101,643,644,645,647],{},"查看 ",[555,646,23],{"href":24}," 了解环境变量与运行时配置",[101,649,650,651,654],{},"浏览 ",[555,652,653],{"href":46},"API 参考"," 对接第三方客户端",[656,657,658],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":256,"searchDepth":277,"depth":277,"links":660},[661,662,663,664,665,666],{"id":80,"depth":271,"text":81},{"id":95,"depth":271,"text":96},{"id":139,"depth":271,"text":139},{"id":242,"depth":271,"text":242},{"id":532,"depth":271,"text":532},{"id":633,"depth":271,"text":633},"Kite 是一个轻量、快速、现代化的静态资源托管平台，支持图片、音视频和任意静态文件。","md",{},{"title":15},{"title":15,"description":667},"XVWFYM5JgP2YY4Ztm3tLVUskkci7Ec-U32tcdNtavEo",[674,675],null,{"title":19,"path":20,"stem":21,"description":676,"children":-1},"5 分钟启动你的第一个 Kite 实例，完成首次登录与初始化。",1776443820139]