mirror of
https://github.com/krau/SaveAny-Bot.git
synced 2026-06-25 17:23:50 +08:00
deploy: 91814a83c7
This commit is contained in:
@@ -129,7 +129,7 @@ SaveAnyBot 需要读取工作目录下的 config.toml 文件作为配置文件,
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>enable</span> = <span style=color:#66d9ef>false</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>session</span> = <span style=color:#e6db74>"data/usersession.db"</span>
|
||||
</span></span></code></pre></div><h3 id=存储端列表>存储端列表
|
||||
<a class=anchor href=#%e5%ad%98%e5%82%a8%e7%ab%af%e5%88%97%e8%a1%a8>#</a></h3><p>存储端列表用于定义 Bot 支持的存储位置, 每个存储端需要指定名称、类型和相关配置, 使用双中括号语法 <code>[[storages]]</code> 定义.</p><p>每一个存储端至少需要以下字段:</p><ul><li><code>name</code>: 存储端名称, 用于在 Bot 中识别, 需要唯一</li><li><code>enable</code>: 是否启用该存储端, 默认为 <code>true</code></li><li><code>type</code>: 存储端类型, 目前支持以下类型:<ul><li><code>local</code>: 本地磁盘</li><li><code>alist</code>: Alist</li><li><code>webdav</code>: WebDAV</li><li><code>minio</code>: MinIO (兼容 S3 API)</li><li><code>telegram</code>: 上传到 Telegram</li></ul></li></ul><p>示例, 这是一个包含本地存储和 webdav 存储的配置:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-toml data-lang=toml><span style=display:flex><span>[[<span style=color:#a6e22e>storages</span>]]
|
||||
<a class=anchor href=#%e5%ad%98%e5%82%a8%e7%ab%af%e5%88%97%e8%a1%a8>#</a></h3><p>存储端列表用于定义 Bot 支持的存储位置, 每个存储端需要指定名称、类型和相关配置, 使用双中括号语法 <code>[[storages]]</code> 定义.</p><p>每一个存储端至少需要以下字段:</p><ul><li><code>name</code>: 存储端名称, 用于在 Bot 中识别, 需要唯一</li><li><code>enable</code>: 是否启用该存储端, 默认为 <code>true</code></li><li><code>type</code>: 存储端类型, 目前支持以下类型:<ul><li><code>local</code>: 本地磁盘</li><li><code>alist</code>: Alist</li><li><code>webdav</code>: WebDAV</li><li><code>s3</code>: aws S3 及其他兼容 S3 的服务</li><li><code>telegram</code>: 上传到 Telegram</li></ul></li></ul><p>示例, 这是一个包含本地存储和 webdav 存储的配置:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-toml data-lang=toml><span style=display:flex><span>[[<span style=color:#a6e22e>storages</span>]]
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>name</span> = <span style=color:#e6db74>"本地存储"</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>type</span> = <span style=color:#e6db74>"local"</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>enable</span> = <span style=color:#66d9ef>true</span>
|
||||
@@ -174,6 +174,6 @@ SaveAnyBot 需要读取工作目录下的 config.toml 文件作为配置文件,
|
||||
</span></span><span style=display:flex><span><span style=color:#75715e># 临时下载文件夹配置</span>
|
||||
</span></span><span style=display:flex><span>[<span style=color:#a6e22e>temp</span>]
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>base_path</span> = <span style=color:#e6db74>"./cache"</span>
|
||||
</span></span></code></pre></div></article><footer class=book-footer><div class="flex flex-wrap justify-between"><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/commit/6e29442c05ccc753d91a2966942dfd33612c034c title='最后修改者 krau | 2025/09/13' target=_blank rel=noopener><img src=/svg/calendar.svg class=book-icon alt>
|
||||
<span>2025/09/13</span></a></div><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/edit/main/docs/content/zh/deployment/configuration/_index.md target=_blank rel=noopener><img src=/svg/edit.svg class=book-icon alt>
|
||||
</span></span></code></pre></div></article><footer class=book-footer><div class="flex flex-wrap justify-between"><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/commit/91814a83c76b67ea1abb4e66b12537374f56c556 title='最后修改者 krau | 2025/12/04' target=_blank rel=noopener><img src=/svg/calendar.svg class=book-icon alt>
|
||||
<span>2025/12/04</span></a></div><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/edit/main/docs/content/zh/deployment/configuration/_index.md target=_blank rel=noopener><img src=/svg/edit.svg class=book-icon alt>
|
||||
<span>编辑本页</span></a></div></div><script>(function(){function e(e){const t=window.getSelection(),n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){if(window.getSelection().toString())return;e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script></footer><div class=book-comments></div><label for=menu-control class="hidden book-menu-overlay"></label></div><aside class=book-toc><div class=book-toc-content><nav id=TableOfContents><ul><li><a href=#详细配置>详细配置</a><ul><li><a href=#全局配置>全局配置</a></li><li><a href=#telegram-配置>Telegram 配置</a></li><li><a href=#存储端列表>存储端列表</a></li><li><a href=#用户列表>用户列表</a></li><li><a href=#事件触发>事件触发</a></li><li><a href=#解析器>解析器</a></li><li><a href=#杂项>杂项</a></li></ul></li></ul></nav></div></aside></main></body></html>
|
||||
@@ -32,8 +32,8 @@
|
||||
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">username</span> = <span style="color:#e6db74">&#34;your_username&#34;</span> <span style="color:#75715e"># WebDAV</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">password</span> = <span style="color:#e6db74">&#34;your_password&#34;</span> <span style="color:#75715e"># WebDAV 的密码</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">base_path</span> = <span style="color:#e6db74">&#34;/path/to/webdav&#34;</span> <span style="color:#75715e"># WebDAV 中的基础路径, 所有文件将存储在此路径下</span>
|
||||
</span></span></code></pre></div><h2 id="minio-s3">
|
||||
MinIO (S3)
|
||||
<a class="anchor" href="#minio-s3">#</a>
|
||||
</span></span></code></pre></div><h2 id="s3">
|
||||
S3
|
||||
<a class="anchor" href="#s3">#</a>
|
||||
</h2>
|
||||
<p><code>type=minio</code></p></description></item></channel></rss>
|
||||
<p><code>type=s3</code></p></description></item></channel></rss>
|
||||
@@ -33,18 +33,18 @@ username = "your_username" # WebDAV
|
||||
password = "your_password" # WebDAV 的密码
|
||||
base_path = "/path/to/webdav" # WebDAV 中的基础路径, 所有文件将存储在此路径下
|
||||
|
||||
MinIO (S3)
|
||||
S3
|
||||
#
|
||||
|
||||
type=minio'><meta name=theme-color media="(prefers-color-scheme: light)" content="#ffffff"><meta name=theme-color media="(prefers-color-scheme: dark)" content="#343a40"><meta name=color-scheme content="light dark"><meta property="og:url" content="https://sabot.unv.app/deployment/configuration/storages/"><meta property="og:site_name" content="Save Any Bot"><meta property="og:title" content="存储端配置"><meta property="og:description" content='存储端配置 # 请先阅读 配置说明 了解配置文件的基本格式.
|
||||
type=s3'><meta name=theme-color media="(prefers-color-scheme: light)" content="#ffffff"><meta name=theme-color media="(prefers-color-scheme: dark)" content="#343a40"><meta name=color-scheme content="light dark"><meta property="og:url" content="https://sabot.unv.app/deployment/configuration/storages/"><meta property="og:site_name" content="Save Any Bot"><meta property="og:title" content="存储端配置"><meta property="og:description" content='存储端配置 # 请先阅读 配置说明 了解配置文件的基本格式.
|
||||
Alist # type=alist
|
||||
不支持 Stream 模式.
|
||||
url = "https://alist.example.com" # Alist 的 URL username = "your_username" # Alist 的用户名 password = "your_password" # Alist 的密码 base_path = "/path/saveanybot" # Alist 中的基础路径, 所有文件将存储在此路径下 token_exp = 3600 # Alist 访问令牌的自动刷新时间, 单位秒 token = "your_token" # Alist 的访问令牌, 可选, 如果不设置则使用用户名和密码进行身份验证. # 使用 token 验证时无法自动刷新 token 本地磁盘 # type=local
|
||||
base_path = "./downloads" # 本地存储的基础路径, 所有文件将存储在此路径下 WebDAV # type=webdav
|
||||
url = "https://webdav.example.com" # WebDAV 的 URL username = "your_username" # WebDAV password = "your_password" # WebDAV 的密码 base_path = "/path/to/webdav" # WebDAV 中的基础路径, 所有文件将存储在此路径下 MinIO (S3) # type=minio'><meta property="og:locale" content="zh"><meta property="og:type" content="article"><meta property="article:section" content="deployment"><meta property="article:modified_time" content="2025-06-16T15:58:03+08:00"><title>存储端配置 | Save Any Bot</title><link rel=icon href=/favicon.png><link rel=manifest href=/manifest.json><link rel=canonical href=https://sabot.unv.app/deployment/configuration/storages/><link rel=alternate hreflang=en href=https://sabot.unv.app/en/deployment/configuration/storages/ title="Storage Configuration"><link rel=stylesheet href=/book.min.a22f4c7d8c2bdc5e3d6e34ba11cb59ab50ea5772594e71305bfd5a595dc78b7e.css integrity="sha256-oi9MfYwr3F49bjS6EctZq1DqV3JZTnEwW/1aWV3Hi34=" crossorigin=anonymous></head><body dir=ltr><input type=checkbox class="hidden toggle" id=menu-control>
|
||||
url = "https://webdav.example.com" # WebDAV 的 URL username = "your_username" # WebDAV password = "your_password" # WebDAV 的密码 base_path = "/path/to/webdav" # WebDAV 中的基础路径, 所有文件将存储在此路径下 S3 # type=s3'><meta property="og:locale" content="zh"><meta property="og:type" content="article"><meta property="article:section" content="deployment"><meta property="article:modified_time" content="2025-12-04T22:59:23+08:00"><title>存储端配置 | Save Any Bot</title><link rel=icon href=/favicon.png><link rel=manifest href=/manifest.json><link rel=canonical href=https://sabot.unv.app/deployment/configuration/storages/><link rel=alternate hreflang=en href=https://sabot.unv.app/en/deployment/configuration/storages/ title="Storage Configuration"><link rel=stylesheet href=/book.min.a22f4c7d8c2bdc5e3d6e34ba11cb59ab50ea5772594e71305bfd5a595dc78b7e.css integrity="sha256-oi9MfYwr3F49bjS6EctZq1DqV3JZTnEwW/1aWV3Hi34=" crossorigin=anonymous></head><body dir=ltr><input type=checkbox class="hidden toggle" id=menu-control>
|
||||
<input type=checkbox class="hidden toggle" id=toc-control><main class="container flex"><aside class=book-menu><div class=book-menu-content><nav><h2 class=book-brand><a class="flex align-center" href=/><img src=/logo.png alt=Logo class=book-icon><span>Save Any Bot</span></a></h2><ul class=book-languages><li><input type=checkbox id=languages class=toggle>
|
||||
<label for=languages class=flex><a role=button class="flex flex-auto"><img src=/svg/translate.svg class=book-icon alt=Languages>
|
||||
简体中文</a></label><ul><li><a href=/en/deployment/configuration/storages/>English</a></li></ul></li></ul><ul><li><a href=https://github.com/krau/SaveAny-Bot target=_blank rel=noopener>🔗 GitHub</a></li></ul><ul><li><span>部署指南</span><ul><li><a href=/deployment/installation/>安装与更新</a></li><li><a href=/deployment/configuration/>配置说明</a><ul><li><a href=/deployment/configuration/storages/ class=active>存储端配置</a></li></ul></li></ul></li><li><a href=/usage/>使用帮助</a><ul></ul></li><li><a href=/help/>常见问题</a><ul></ul></li><li><a href=/contribute/>参与开发</a><ul></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script></div></aside><div class=book-page><header class=book-header><div class="flex align-center justify-between"><label for=menu-control><img src=/svg/menu.svg class=book-icon alt=Menu></label><h3>存储端配置</h3><label for=toc-control><img src=/svg/toc.svg class=book-icon alt="Table of Contents"></label></div><aside class="hidden clearfix"><nav id=TableOfContents><ul><li><a href=#alist>Alist</a></li><li><a href=#本地磁盘>本地磁盘</a></li><li><a href=#webdav>WebDAV</a></li><li><a href=#minio-s3>MinIO (S3)</a></li><li><a href=#telegram>Telegram</a></li></ul></nav></aside></header><article class="markdown book-article"><h1 id=存储端配置>存储端配置
|
||||
简体中文</a></label><ul><li><a href=/en/deployment/configuration/storages/>English</a></li></ul></li></ul><ul><li><a href=https://github.com/krau/SaveAny-Bot target=_blank rel=noopener>🔗 GitHub</a></li></ul><ul><li><span>部署指南</span><ul><li><a href=/deployment/installation/>安装与更新</a></li><li><a href=/deployment/configuration/>配置说明</a><ul><li><a href=/deployment/configuration/storages/ class=active>存储端配置</a></li></ul></li></ul></li><li><a href=/usage/>使用帮助</a><ul></ul></li><li><a href=/help/>常见问题</a><ul></ul></li><li><a href=/contribute/>参与开发</a><ul></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script></div></aside><div class=book-page><header class=book-header><div class="flex align-center justify-between"><label for=menu-control><img src=/svg/menu.svg class=book-icon alt=Menu></label><h3>存储端配置</h3><label for=toc-control><img src=/svg/toc.svg class=book-icon alt="Table of Contents"></label></div><aside class="hidden clearfix"><nav id=TableOfContents><ul><li><a href=#alist>Alist</a></li><li><a href=#本地磁盘>本地磁盘</a></li><li><a href=#webdav>WebDAV</a></li><li><a href=#s3>S3</a></li><li><a href=#telegram>Telegram</a></li></ul></nav></aside></header><article class="markdown book-article"><h1 id=存储端配置>存储端配置
|
||||
<a class=anchor href=#%e5%ad%98%e5%82%a8%e7%ab%af%e9%85%8d%e7%bd%ae>#</a></h1><p>请先阅读 <a href=../>配置说明</a> 了解配置文件的基本格式.</p><h2 id=alist>Alist
|
||||
<a class=anchor href=#alist>#</a></h2><p><code>type=alist</code></p><p>不支持 Stream 模式.</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-toml data-lang=toml><span style=display:flex><span><span style=color:#a6e22e>url</span> = <span style=color:#e6db74>"https://alist.example.com"</span> <span style=color:#75715e># Alist 的 URL</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>username</span> = <span style=color:#e6db74>"your_username"</span> <span style=color:#75715e># Alist 的用户名</span>
|
||||
@@ -61,15 +61,16 @@ url = "https://webdav.example.com" # WebDAV 的 URL username = "your_username" #
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>username</span> = <span style=color:#e6db74>"your_username"</span> <span style=color:#75715e># WebDAV</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>password</span> = <span style=color:#e6db74>"your_password"</span> <span style=color:#75715e># WebDAV 的密码</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>base_path</span> = <span style=color:#e6db74>"/path/to/webdav"</span> <span style=color:#75715e># WebDAV 中的基础路径, 所有文件将存储在此路径下</span>
|
||||
</span></span></code></pre></div><h2 id=minio-s3>MinIO (S3)
|
||||
<a class=anchor href=#minio-s3>#</a></h2><p><code>type=minio</code></p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-toml data-lang=toml><span style=display:flex><span><span style=color:#a6e22e>endpoint</span> = <span style=color:#e6db74>"minio.example.com"</span> <span style=color:#75715e># MinIO 或 S3 的端点</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>access_key_id</span> = <span style=color:#e6db74>"your_access_key_id"</span> <span style=color:#75715e># MinIO 或 S3 的访问密钥 ID</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>secret_access_key</span> = <span style=color:#e6db74>"your_secret_access_key"</span> <span style=color:#75715e># MinIO 或 S3 的秘密访问密钥</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>bucket_name</span> = <span style=color:#e6db74>"your_bucket_name"</span> <span style=color:#75715e># MinIO 或 S3 的存储桶名称</span>
|
||||
</span></span></code></pre></div><h2 id=s3>S3
|
||||
<a class=anchor href=#s3>#</a></h2><p><code>type=s3</code></p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-toml data-lang=toml><span style=display:flex><span><span style=color:#a6e22e>endpoint</span> = <span style=color:#e6db74>"s3.example.com"</span> <span style=color:#75715e># S3 的端点</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>region</span> = <span style=color:#e6db74>"us-east-1"</span> <span style=color:#75715e># S3 的区域</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>access_key_id</span> = <span style=color:#e6db74>"your_access_key_id"</span> <span style=color:#75715e># S3 的访问密钥 ID</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>secret_access_key</span> = <span style=color:#e6db74>"your_secret_access_key"</span> <span style=color:#75715e># S3 的秘密访问密钥</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>bucket_name</span> = <span style=color:#e6db74>"your_bucket_name"</span> <span style=color:#75715e># S3 的存储桶名称</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>use_ssl</span> = <span style=color:#66d9ef>true</span> <span style=color:#75715e># 是否使用 SSL, 默认为 true</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>base_path</span> = <span style=color:#e6db74>"/path/to/minio"</span> <span style=color:#75715e># MinIO 中的基础路径, 所有文件将存储在此路径下</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>base_path</span> = <span style=color:#e6db74>"/path/to/s3"</span> <span style=color:#75715e># S3 中的基础路径, 所有文件将存储在此路径下</span>
|
||||
</span></span></code></pre></div><h2 id=telegram>Telegram
|
||||
<a class=anchor href=#telegram>#</a></h2><p><code>type=telegram</code></p><p>不支持 Stream 模式.</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-toml data-lang=toml><span style=display:flex><span><span style=color:#a6e22e>chat_id</span> = <span style=color:#e6db74>"123456789"</span> <span style=color:#75715e># Telegram 聊天 ID, Bot 将把文件发送到这个聊天</span>
|
||||
</span></span></code></pre></div></article><footer class=book-footer><div class="flex flex-wrap justify-between"><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/commit/4206d1fe9658e4f240e426827d65611ea33ab0ed title='最后修改者 krau | 2025/06/16' target=_blank rel=noopener><img src=/svg/calendar.svg class=book-icon alt>
|
||||
<span>2025/06/16</span></a></div><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/edit/main/docs/content/zh/deployment/configuration/storages.md target=_blank rel=noopener><img src=/svg/edit.svg class=book-icon alt>
|
||||
<span>编辑本页</span></a></div></div><script>(function(){function e(e){const t=window.getSelection(),n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){if(window.getSelection().toString())return;e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script></footer><div class=book-comments></div><label for=menu-control class="hidden book-menu-overlay"></label></div><aside class=book-toc><div class=book-toc-content><nav id=TableOfContents><ul><li><a href=#alist>Alist</a></li><li><a href=#本地磁盘>本地磁盘</a></li><li><a href=#webdav>WebDAV</a></li><li><a href=#minio-s3>MinIO (S3)</a></li><li><a href=#telegram>Telegram</a></li></ul></nav></div></aside></main></body></html>
|
||||
</span></span></code></pre></div></article><footer class=book-footer><div class="flex flex-wrap justify-between"><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/commit/91814a83c76b67ea1abb4e66b12537374f56c556 title='最后修改者 krau | 2025/12/04' target=_blank rel=noopener><img src=/svg/calendar.svg class=book-icon alt>
|
||||
<span>2025/12/04</span></a></div><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/edit/main/docs/content/zh/deployment/configuration/storages.md target=_blank rel=noopener><img src=/svg/edit.svg class=book-icon alt>
|
||||
<span>编辑本页</span></a></div></div><script>(function(){function e(e){const t=window.getSelection(),n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){if(window.getSelection().toString())return;e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script></footer><div class=book-comments></div><label for=menu-control class="hidden book-menu-overlay"></label></div><aside class=book-toc><div class=book-toc-content><nav id=TableOfContents><ul><li><a href=#alist>Alist</a></li><li><a href=#本地磁盘>本地磁盘</a></li><li><a href=#webdav>WebDAV</a></li><li><a href=#s3>S3</a></li><li><a href=#telegram>Telegram</a></li></ul></nav></div></aside></main></body></html>
|
||||
@@ -36,7 +36,7 @@ English</a></label><ul><li><a href=/deployment/configuration/>简体中文</a></
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>enable</span> = <span style=color:#66d9ef>false</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>url</span> = <span style=color:#e6db74>"socks5://127.0.0.1:7890"</span>
|
||||
</span></span></code></pre></div><h3 id=storage-endpoints-list>Storage Endpoints List
|
||||
<a class=anchor href=#storage-endpoints-list>#</a></h3><p>The storage endpoints list is used to define the storage locations supported by the Bot. Each storage endpoint needs to specify a name, type, and related configuration, using the double bracket syntax <code>[[storages]]</code>.</p><p>Each storage endpoint requires at least the following fields:</p><ul><li><code>name</code>: Storage endpoint name, used for identification in the Bot, must be unique.</li><li><code>enable</code>: Whether to enable this storage endpoint, default is <code>true</code>.</li><li><code>type</code>: Storage endpoint type, currently supports the following types:<ul><li><code>local</code>: Local disk</li><li><code>alist</code>: Alist</li><li><code>webdav</code>: WebDAV</li><li><code>minio</code>: MinIO (compatible with S3 API)</li><li><code>telegram</code>: Upload to Telegram</li></ul></li></ul><p>Example, this is a configuration that includes local storage and webdav storage:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-toml data-lang=toml><span style=display:flex><span>[[<span style=color:#a6e22e>storages</span>]]
|
||||
<a class=anchor href=#storage-endpoints-list>#</a></h3><p>The storage endpoints list is used to define the storage locations supported by the Bot. Each storage endpoint needs to specify a name, type, and related configuration, using the double bracket syntax <code>[[storages]]</code>.</p><p>Each storage endpoint requires at least the following fields:</p><ul><li><code>name</code>: Storage endpoint name, used for identification in the Bot, must be unique.</li><li><code>enable</code>: Whether to enable this storage endpoint, default is <code>true</code>.</li><li><code>type</code>: Storage endpoint type, currently supports the following types:<ul><li><code>local</code>: Local disk</li><li><code>alist</code>: Alist</li><li><code>webdav</code>: WebDAV</li><li><code>s3</code>: aws S3 and other S3 compatible services</li><li><code>telegram</code>: Upload to Telegram</li></ul></li></ul><p>Example, this is a configuration that includes local storage and webdav storage:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-toml data-lang=toml><span style=display:flex><span>[[<span style=color:#a6e22e>storages</span>]]
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>name</span> = <span style=color:#e6db74>"Local Storage"</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>type</span> = <span style=color:#e6db74>"local"</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>enable</span> = <span style=color:#66d9ef>true</span>
|
||||
@@ -71,6 +71,6 @@ English</a></label><ul><li><a href=/deployment/configuration/>简体中文</a></
|
||||
</span></span><span style=display:flex><span><span style=color:#75715e># Temporary download folder configuration</span>
|
||||
</span></span><span style=display:flex><span>[<span style=color:#a6e22e>temp</span>]
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>base_path</span> = <span style=color:#e6db74>"./cache"</span>
|
||||
</span></span></code></pre></div></article><footer class=book-footer><div class="flex flex-wrap justify-between"><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/commit/73b5f1b18e505b93277abbf3a78f889ce1034fc4 title='Last modified by krau | 2025/06/16' target=_blank rel=noopener><img src=/svg/calendar.svg class=book-icon alt>
|
||||
<span>2025/06/16</span></a></div><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/edit/main/docs/content/en/deployment/configuration/_index.md target=_blank rel=noopener><img src=/svg/edit.svg class=book-icon alt>
|
||||
</span></span></code></pre></div></article><footer class=book-footer><div class="flex flex-wrap justify-between"><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/commit/91814a83c76b67ea1abb4e66b12537374f56c556 title='Last modified by krau | 2025/12/04' target=_blank rel=noopener><img src=/svg/calendar.svg class=book-icon alt>
|
||||
<span>2025/12/04</span></a></div><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/edit/main/docs/content/en/deployment/configuration/_index.md target=_blank rel=noopener><img src=/svg/edit.svg class=book-icon alt>
|
||||
<span>Edit this page</span></a></div></div><script>(function(){function e(e){const t=window.getSelection(),n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){if(window.getSelection().toString())return;e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script></footer><div class=book-comments></div><label for=menu-control class="hidden book-menu-overlay"></label></div><aside class=book-toc><div class=book-toc-content><nav id=TableOfContents><ul><li><a href=#detailed-configuration>Detailed Configuration</a><ul><li><a href=#global-configuration>Global Configuration</a></li><li><a href=#telegram-configuration>Telegram Configuration</a></li><li><a href=#storage-endpoints-list>Storage Endpoints List</a></li><li><a href=#user-list>User List</a></li><li><a href=#miscellaneous>Miscellaneous</a></li></ul></li></ul></nav></div></aside></main></body></html>
|
||||
@@ -24,10 +24,10 @@ token = "your_token"
|
||||
type=local'><meta name=theme-color media="(prefers-color-scheme: light)" content="#ffffff"><meta name=theme-color media="(prefers-color-scheme: dark)" content="#343a40"><meta name=color-scheme content="light dark"><meta property="og:url" content="https://sabot.unv.app/en/deployment/configuration/storages/"><meta property="og:site_name" content="Save Any Bot"><meta property="og:title" content="Storage Configuration"><meta property="og:description" content='Storage Configuration # Please first read the Configuration Guide to understand the basic format of the configuration file.
|
||||
Alist # type=alist
|
||||
Stream mode is not supported.
|
||||
url = "https://alist.example.com" # URL of Alist username = "your_username" # Username for Alist password = "your_password" # Password for Alist base_path = "/path/saveanybot" # Base path in Alist, all files will be stored under this path token_exp = 3600 # Auto-refresh time for Alist access token, in seconds token = "your_token" # Access token for Alist, optional, if not set, username and password will be used for authentication. # When using token authentication, the token cannot be automatically refreshed Local Disk # type=local'><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:section" content="deployment"><meta property="article:modified_time" content="2025-06-16T16:30:45+08:00"><title>Storage Configuration | Save Any Bot</title><link rel=icon href=/favicon.png><link rel=manifest href=/manifest.json><link rel=canonical href=https://sabot.unv.app/en/deployment/configuration/storages/><link rel=alternate hreflang=zh href=https://sabot.unv.app/deployment/configuration/storages/ title=存储端配置><link rel=stylesheet href=/book.min.a22f4c7d8c2bdc5e3d6e34ba11cb59ab50ea5772594e71305bfd5a595dc78b7e.css integrity="sha256-oi9MfYwr3F49bjS6EctZq1DqV3JZTnEwW/1aWV3Hi34=" crossorigin=anonymous></head><body dir=ltr><input type=checkbox class="hidden toggle" id=menu-control>
|
||||
url = "https://alist.example.com" # URL of Alist username = "your_username" # Username for Alist password = "your_password" # Password for Alist base_path = "/path/saveanybot" # Base path in Alist, all files will be stored under this path token_exp = 3600 # Auto-refresh time for Alist access token, in seconds token = "your_token" # Access token for Alist, optional, if not set, username and password will be used for authentication. # When using token authentication, the token cannot be automatically refreshed Local Disk # type=local'><meta property="og:locale" content="en"><meta property="og:type" content="article"><meta property="article:section" content="deployment"><meta property="article:modified_time" content="2025-12-04T22:59:23+08:00"><title>Storage Configuration | Save Any Bot</title><link rel=icon href=/favicon.png><link rel=manifest href=/manifest.json><link rel=canonical href=https://sabot.unv.app/en/deployment/configuration/storages/><link rel=alternate hreflang=zh href=https://sabot.unv.app/deployment/configuration/storages/ title=存储端配置><link rel=stylesheet href=/book.min.a22f4c7d8c2bdc5e3d6e34ba11cb59ab50ea5772594e71305bfd5a595dc78b7e.css integrity="sha256-oi9MfYwr3F49bjS6EctZq1DqV3JZTnEwW/1aWV3Hi34=" crossorigin=anonymous></head><body dir=ltr><input type=checkbox class="hidden toggle" id=menu-control>
|
||||
<input type=checkbox class="hidden toggle" id=toc-control><main class="container flex"><aside class=book-menu><div class=book-menu-content><nav><h2 class=book-brand><a class="flex align-center" href=/en/><img src=/logo.png alt=Logo class=book-icon><span>Save Any Bot</span></a></h2><ul class=book-languages><li><input type=checkbox id=languages class=toggle>
|
||||
<label for=languages class=flex><a role=button class="flex flex-auto"><img src=/svg/translate.svg class=book-icon alt=Languages>
|
||||
English</a></label><ul><li><a href=/deployment/configuration/storages/>简体中文</a></li></ul></li></ul><ul><li><a href=https://github.com/krau/SaveAny-Bot target=_blank rel=noopener>🔗 GitHub</a></li></ul><ul><li><span>Deployment Guide</span><ul><li><a href=/en/deployment/configuration/>Configuration Guide</a><ul><li><a href=/en/deployment/configuration/storages/ class=active>Storage Configuration</a></li></ul></li><li><a href=/en/deployment/installation/>Installation and Updates</a></li></ul></li><li><a href=/en/usage/>Usage</a><ul></ul></li><li><a href=/en/help/>Frequently Asked Questions</a><ul></ul></li><li><a href=/en/contribute/>Contributing</a><ul></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script></div></aside><div class=book-page><header class=book-header><div class="flex align-center justify-between"><label for=menu-control><img src=/svg/menu.svg class=book-icon alt=Menu></label><h3>Storage Configuration</h3><label for=toc-control><img src=/svg/toc.svg class=book-icon alt="Table of Contents"></label></div><aside class="hidden clearfix"><nav id=TableOfContents><ul><li><a href=#alist>Alist</a></li><li><a href=#local-disk>Local Disk</a></li><li><a href=#webdav>WebDAV</a></li><li><a href=#minio-s3>MinIO (S3)</a></li><li><a href=#telegram>Telegram</a></li></ul></nav></aside></header><article class="markdown book-article"><h1 id=storage-configuration>Storage Configuration
|
||||
English</a></label><ul><li><a href=/deployment/configuration/storages/>简体中文</a></li></ul></li></ul><ul><li><a href=https://github.com/krau/SaveAny-Bot target=_blank rel=noopener>🔗 GitHub</a></li></ul><ul><li><span>Deployment Guide</span><ul><li><a href=/en/deployment/configuration/>Configuration Guide</a><ul><li><a href=/en/deployment/configuration/storages/ class=active>Storage Configuration</a></li></ul></li><li><a href=/en/deployment/installation/>Installation and Updates</a></li></ul></li><li><a href=/en/usage/>Usage</a><ul></ul></li><li><a href=/en/help/>Frequently Asked Questions</a><ul></ul></li><li><a href=/en/contribute/>Contributing</a><ul></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script></div></aside><div class=book-page><header class=book-header><div class="flex align-center justify-between"><label for=menu-control><img src=/svg/menu.svg class=book-icon alt=Menu></label><h3>Storage Configuration</h3><label for=toc-control><img src=/svg/toc.svg class=book-icon alt="Table of Contents"></label></div><aside class="hidden clearfix"><nav id=TableOfContents><ul><li><a href=#alist>Alist</a></li><li><a href=#local-disk>Local Disk</a></li><li><a href=#webdav>WebDAV</a></li><li><a href=#s3>S3</a></li><li><a href=#telegram>Telegram</a></li></ul></nav></aside></header><article class="markdown book-article"><h1 id=storage-configuration>Storage Configuration
|
||||
<a class=anchor href=#storage-configuration>#</a></h1><p>Please first read the <a href=../>Configuration Guide</a> to understand the basic format of the configuration file.</p><h2 id=alist>Alist
|
||||
<a class=anchor href=#alist>#</a></h2><p><code>type=alist</code></p><p>Stream mode is not supported.</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-toml data-lang=toml><span style=display:flex><span><span style=color:#a6e22e>url</span> = <span style=color:#e6db74>"https://alist.example.com"</span> <span style=color:#75715e># URL of Alist</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>username</span> = <span style=color:#e6db74>"your_username"</span> <span style=color:#75715e># Username for Alist</span>
|
||||
@@ -44,15 +44,16 @@ English</a></label><ul><li><a href=/deployment/configuration/storages/>简体中
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>username</span> = <span style=color:#e6db74>"your_username"</span> <span style=color:#75715e># Username for WebDAV</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>password</span> = <span style=color:#e6db74>"your_password"</span> <span style=color:#75715e># Password for WebDAV</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>base_path</span> = <span style=color:#e6db74>"/path/to/webdav"</span> <span style=color:#75715e># Base path in WebDAV, all files will be stored under this path</span>
|
||||
</span></span></code></pre></div><h2 id=minio-s3>MinIO (S3)
|
||||
<a class=anchor href=#minio-s3>#</a></h2><p><code>type=minio</code></p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-toml data-lang=toml><span style=display:flex><span><span style=color:#a6e22e>endpoint</span> = <span style=color:#e6db74>"minio.example.com"</span> <span style=color:#75715e># Endpoint for MinIO or S3</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>access_key_id</span> = <span style=color:#e6db74>"your_access_key_id"</span> <span style=color:#75715e># Access key ID for MinIO or S3</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>secret_access_key</span> = <span style=color:#e6db74>"your_secret_access_key"</span> <span style=color:#75715e># Secret access key for MinIO or S3</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>bucket_name</span> = <span style=color:#e6db74>"your_bucket_name"</span> <span style=color:#75715e># Bucket name for MinIO or S3</span>
|
||||
</span></span></code></pre></div><h2 id=s3>S3
|
||||
<a class=anchor href=#s3>#</a></h2><p><code>type=s3</code></p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-toml data-lang=toml><span style=display:flex><span><span style=color:#a6e22e>endpoint</span> = <span style=color:#e6db74>"s3.example.com"</span> <span style=color:#75715e># Endpoint for S3</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>region</span> = <span style=color:#e6db74>"us-east-1"</span> <span style=color:#75715e># Region for S3</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>access_key_id</span> = <span style=color:#e6db74>"your_access_key_id"</span> <span style=color:#75715e># Access key ID for S3</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>secret_access_key</span> = <span style=color:#e6db74>"your_secret_access_key"</span> <span style=color:#75715e># Secret access key for S3</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>bucket_name</span> = <span style=color:#e6db74>"your_bucket_name"</span> <span style=color:#75715e># Bucket name for S3</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>use_ssl</span> = <span style=color:#66d9ef>true</span> <span style=color:#75715e># Whether to use SSL, default is true</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>base_path</span> = <span style=color:#e6db74>"/path/to/minio"</span> <span style=color:#75715e># Base path in MinIO, all files will be stored under this path</span>
|
||||
</span></span><span style=display:flex><span><span style=color:#a6e22e>base_path</span> = <span style=color:#e6db74>"/path/to/s3"</span> <span style=color:#75715e># Base path in S3, all files will be stored under this path</span>
|
||||
</span></span></code></pre></div><h2 id=telegram>Telegram
|
||||
<a class=anchor href=#telegram>#</a></h2><p><code>type=telegram</code></p><p>Stream mode is not supported.</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-toml data-lang=toml><span style=display:flex><span><span style=color:#a6e22e>chat_id</span> = <span style=color:#e6db74>"123456789"</span> <span style=color:#75715e># Telegram chat ID, the Bot will send files to this chat</span>
|
||||
</span></span></code></pre></div></article><footer class=book-footer><div class="flex flex-wrap justify-between"><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/commit/73b5f1b18e505b93277abbf3a78f889ce1034fc4 title='Last modified by krau | 2025/06/16' target=_blank rel=noopener><img src=/svg/calendar.svg class=book-icon alt>
|
||||
<span>2025/06/16</span></a></div><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/edit/main/docs/content/en/deployment/configuration/storages.md target=_blank rel=noopener><img src=/svg/edit.svg class=book-icon alt>
|
||||
<span>Edit this page</span></a></div></div><script>(function(){function e(e){const t=window.getSelection(),n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){if(window.getSelection().toString())return;e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script></footer><div class=book-comments></div><label for=menu-control class="hidden book-menu-overlay"></label></div><aside class=book-toc><div class=book-toc-content><nav id=TableOfContents><ul><li><a href=#alist>Alist</a></li><li><a href=#local-disk>Local Disk</a></li><li><a href=#webdav>WebDAV</a></li><li><a href=#minio-s3>MinIO (S3)</a></li><li><a href=#telegram>Telegram</a></li></ul></nav></div></aside></main></body></html>
|
||||
</span></span></code></pre></div></article><footer class=book-footer><div class="flex flex-wrap justify-between"><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/commit/91814a83c76b67ea1abb4e66b12537374f56c556 title='Last modified by krau | 2025/12/04' target=_blank rel=noopener><img src=/svg/calendar.svg class=book-icon alt>
|
||||
<span>2025/12/04</span></a></div><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/edit/main/docs/content/en/deployment/configuration/storages.md target=_blank rel=noopener><img src=/svg/edit.svg class=book-icon alt>
|
||||
<span>Edit this page</span></a></div></div><script>(function(){function e(e){const t=window.getSelection(),n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){if(window.getSelection().toString())return;e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script></footer><div class=book-comments></div><label for=menu-control class="hidden book-menu-overlay"></label></div><aside class=book-toc><div class=book-toc-content><nav id=TableOfContents><ul><li><a href=#alist>Alist</a></li><li><a href=#local-disk>Local Disk</a></li><li><a href=#webdav>WebDAV</a></li><li><a href=#s3>S3</a></li><li><a href=#telegram>Telegram</a></li></ul></nav></div></aside></main></body></html>
|
||||
@@ -21,7 +21,7 @@ Automatic organization based on storage rules
|
||||
Supports multiple storage backends:
|
||||
|
||||
Alist
|
||||
Minio (S3 compatible)
|
||||
S3
|
||||
WebDAV
|
||||
Telegram (re-upload to specified chat)
|
||||
Local disk
|
||||
@@ -33,7 +33,7 @@ Local disk
|
||||
#
|
||||
|
||||
"><meta name=theme-color media="(prefers-color-scheme: light)" content="#ffffff"><meta name=theme-color media="(prefers-color-scheme: dark)" content="#343a40"><meta name=color-scheme content="light dark"><meta property="og:url" content="https://sabot.unv.app/en/"><meta property="og:site_name" content="Save Any Bot"><meta property="og:title" content="Introduction"><meta property="og:description" content="Save Any Bot # Save Any Bot is a tool that allows you to save files from Telegram to various storage backends.
|
||||
Features # Supports documents/videos/images/stickers… and even Telegraph Breaks restrictions on saving files Batch download Streaming Multi-user Automatic organization based on storage rules Supports multiple storage backends: Alist Minio (S3 compatible) WebDAV Telegram (re-upload to specified chat) Local disk Contributors #"><meta property="og:locale" content="en"><meta property="og:type" content="website"><title>Introduction | Save Any Bot</title><link rel=icon href=/favicon.png><link rel=manifest href=/manifest.json><link rel=canonical href=https://sabot.unv.app/en/><link rel=alternate hreflang=zh href=https://sabot.unv.app/ title=介绍><link rel=stylesheet href=/book.min.a22f4c7d8c2bdc5e3d6e34ba11cb59ab50ea5772594e71305bfd5a595dc78b7e.css integrity="sha256-oi9MfYwr3F49bjS6EctZq1DqV3JZTnEwW/1aWV3Hi34=" crossorigin=anonymous><link rel=alternate type=application/rss+xml href=https://sabot.unv.app/en/index.xml title="Save Any Bot"></head><body dir=ltr><input type=checkbox class="hidden toggle" id=menu-control>
|
||||
Features # Supports documents/videos/images/stickers… and even Telegraph Breaks restrictions on saving files Batch download Streaming Multi-user Automatic organization based on storage rules Supports multiple storage backends: Alist S3 WebDAV Telegram (re-upload to specified chat) Local disk Contributors #"><meta property="og:locale" content="en"><meta property="og:type" content="website"><title>Introduction | Save Any Bot</title><link rel=icon href=/favicon.png><link rel=manifest href=/manifest.json><link rel=canonical href=https://sabot.unv.app/en/><link rel=alternate hreflang=zh href=https://sabot.unv.app/ title=介绍><link rel=stylesheet href=/book.min.a22f4c7d8c2bdc5e3d6e34ba11cb59ab50ea5772594e71305bfd5a595dc78b7e.css integrity="sha256-oi9MfYwr3F49bjS6EctZq1DqV3JZTnEwW/1aWV3Hi34=" crossorigin=anonymous><link rel=alternate type=application/rss+xml href=https://sabot.unv.app/en/index.xml title="Save Any Bot"></head><body dir=ltr><input type=checkbox class="hidden toggle" id=menu-control>
|
||||
<input type=checkbox class="hidden toggle" id=toc-control><main class="container flex"><aside class=book-menu><div class=book-menu-content><nav><h2 class=book-brand><a class="flex align-center" href=/en/><img src=/logo.png alt=Logo class=book-icon><span>Save Any Bot</span></a></h2><ul class=book-languages><li><input type=checkbox id=languages class=toggle>
|
||||
<label for=languages class=flex><a role=button class="flex flex-auto"><img src=/svg/translate.svg class=book-icon alt=Languages>
|
||||
English</a></label><ul><li><a href=/>简体中文</a></li></ul></li></ul><ul><li><a href=https://github.com/krau/SaveAny-Bot target=_blank rel=noopener>🔗 GitHub</a></li></ul><ul><li><span>Deployment Guide</span><ul><li><a href=/en/deployment/configuration/>Configuration Guide</a><ul><li><a href=/en/deployment/configuration/storages/>Storage Configuration</a></li></ul></li><li><a href=/en/deployment/installation/>Installation and Updates</a></li></ul></li><li><a href=/en/usage/>Usage</a><ul></ul></li><li><a href=/en/help/>Frequently Asked Questions</a><ul></ul></li><li><a href=/en/contribute/>Contributing</a><ul></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script></div></aside><div class=book-page><header class=book-header><div class="flex align-center justify-between"><label for=menu-control><img src=/svg/menu.svg class=book-icon alt=Menu></label><h3>Introduction</h3><label for=toc-control><img src=/svg/toc.svg class=book-icon alt="Table of Contents"></label></div><aside class="hidden clearfix"><nav id=TableOfContents><ul><li><a href=#features>Features</a></li><li><a href=#contributors><a href=https://github.com/krau/SaveAny-Bot/graphs/contributors>Contributors</a></a></li></ul></nav></aside></header><article class="markdown book-article"><h1 id=save-any-bot>Save Any Bot
|
||||
@@ -41,7 +41,7 @@ English</a></label><ul><li><a href=/>简体中文</a></li></ul></li></ul><ul><li
|
||||
<img src="https://img.shields.io/github/license/krau/SaveAny-Bot?style=flat-square" alt>
|
||||
<img src="https://img.shields.io/github/v/release/krau/SaveAny-Bot?color=cyan&style=flat-square" alt>
|
||||
<img src="https://img.shields.io/github/downloads/krau/SaveAny-Bot/total?style=flat-square" alt></p><p>Save Any Bot is a tool that allows you to save files from Telegram to various storage backends.</p><h2 id=features>Features
|
||||
<a class=anchor href=#features>#</a></h2><ul><li>Supports documents/videos/images/stickers… and even Telegraph</li><li>Breaks restrictions on saving files</li><li>Batch download</li><li>Streaming</li><li>Multi-user</li><li>Automatic organization based on storage rules</li><li>Supports multiple storage backends:<ul><li>Alist</li><li>Minio (S3 compatible)</li><li>WebDAV</li><li>Telegram (re-upload to specified chat)</li><li>Local disk</li></ul></li></ul><h2 id=contributors><a href=https://github.com/krau/SaveAny-Bot/graphs/contributors>Contributors</a>
|
||||
<a class=anchor href=#contributors>#</a></h2><p><img src="https://contrib.rocks/image?repo=krau/SaveAny-Bot&max=750&columns=20" alt=Contributors></p></article><footer class=book-footer><div class="flex flex-wrap justify-between"><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/commit/73b5f1b18e505b93277abbf3a78f889ce1034fc4 title='Last modified by krau | 2025/06/16' target=_blank rel=noopener><img src=/svg/calendar.svg class=book-icon alt>
|
||||
<span>2025/06/16</span></a></div><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/edit/main/docs/content/en/_index.md target=_blank rel=noopener><img src=/svg/edit.svg class=book-icon alt>
|
||||
<a class=anchor href=#features>#</a></h2><ul><li>Supports documents/videos/images/stickers… and even Telegraph</li><li>Breaks restrictions on saving files</li><li>Batch download</li><li>Streaming</li><li>Multi-user</li><li>Automatic organization based on storage rules</li><li>Supports multiple storage backends:<ul><li>Alist</li><li>S3</li><li>WebDAV</li><li>Telegram (re-upload to specified chat)</li><li>Local disk</li></ul></li></ul><h2 id=contributors><a href=https://github.com/krau/SaveAny-Bot/graphs/contributors>Contributors</a>
|
||||
<a class=anchor href=#contributors>#</a></h2><p><img src="https://contrib.rocks/image?repo=krau/SaveAny-Bot&max=750&columns=20" alt=Contributors></p></article><footer class=book-footer><div class="flex flex-wrap justify-between"><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/commit/91814a83c76b67ea1abb4e66b12537374f56c556 title='Last modified by krau | 2025/12/04' target=_blank rel=noopener><img src=/svg/calendar.svg class=book-icon alt>
|
||||
<span>2025/12/04</span></a></div><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/edit/main/docs/content/en/_index.md target=_blank rel=noopener><img src=/svg/edit.svg class=book-icon alt>
|
||||
<span>Edit this page</span></a></div></div><script>(function(){function e(e){const t=window.getSelection(),n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){if(window.getSelection().toString())return;e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script></footer><div class=book-comments></div><label for=menu-control class="hidden book-menu-overlay"></label></div><aside class=book-toc><div class=book-toc-content><nav id=TableOfContents><ul><li><a href=#features>Features</a></li><li><a href=#contributors><a href=https://github.com/krau/SaveAny-Bot/graphs/contributors>Contributors</a></a></li></ul></nav></div></aside></main></body></html>
|
||||
@@ -1 +1 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://sabot.unv.app/en/deployment/</loc><lastmod>2025-06-16T16:30:45+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/"/></url><url><loc>https://sabot.unv.app/en/usage/</loc><lastmod>2025-06-16T16:30:45+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/usage/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/usage/"/></url><url><loc>https://sabot.unv.app/en/help/</loc><lastmod>2025-06-16T16:30:45+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/help/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/help/"/></url><url><loc>https://sabot.unv.app/en/contribute/</loc><lastmod>2025-06-16T16:30:45+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/contribute/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/contribute/"/></url><url><loc>https://sabot.unv.app/en/categories/</loc><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/categories/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/categories/"/></url><url><loc>https://sabot.unv.app/en/deployment/configuration/</loc><lastmod>2025-06-16T16:30:45+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/configuration/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/configuration/"/></url><url><loc>https://sabot.unv.app/en/deployment/installation/</loc><lastmod>2025-08-24T14:47:13+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/installation/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/installation/"/></url><url><loc>https://sabot.unv.app/en/</loc><lastmod>2025-06-16T16:30:45+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/"/></url><url><loc>https://sabot.unv.app/en/deployment/configuration/storages/</loc><lastmod>2025-06-16T16:30:45+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/configuration/storages/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/configuration/storages/"/></url><url><loc>https://sabot.unv.app/en/tags/</loc><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/tags/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/tags/"/></url></urlset>
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://sabot.unv.app/en/deployment/</loc><lastmod>2025-06-16T16:30:45+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/"/></url><url><loc>https://sabot.unv.app/en/usage/</loc><lastmod>2025-06-16T16:30:45+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/usage/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/usage/"/></url><url><loc>https://sabot.unv.app/en/help/</loc><lastmod>2025-06-16T16:30:45+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/help/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/help/"/></url><url><loc>https://sabot.unv.app/en/contribute/</loc><lastmod>2025-06-16T16:30:45+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/contribute/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/contribute/"/></url><url><loc>https://sabot.unv.app/en/categories/</loc><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/categories/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/categories/"/></url><url><loc>https://sabot.unv.app/en/deployment/configuration/</loc><lastmod>2025-12-04T22:59:23+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/configuration/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/configuration/"/></url><url><loc>https://sabot.unv.app/en/deployment/installation/</loc><lastmod>2025-08-24T14:47:13+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/installation/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/installation/"/></url><url><loc>https://sabot.unv.app/en/</loc><lastmod>2025-12-04T22:59:23+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/"/></url><url><loc>https://sabot.unv.app/en/deployment/configuration/storages/</loc><lastmod>2025-12-04T22:59:23+08:00</lastmod><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/configuration/storages/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/configuration/storages/"/></url><url><loc>https://sabot.unv.app/en/tags/</loc><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/tags/"/><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/tags/"/></url></urlset>
|
||||
10
index.html
10
index.html
@@ -23,7 +23,7 @@
|
||||
存储端支持:
|
||||
|
||||
Alist
|
||||
S3 (MinioSDK)
|
||||
S3
|
||||
WebDAV
|
||||
本地磁盘
|
||||
Telegram (重传回指定聊天)
|
||||
@@ -35,7 +35,7 @@ Telegram (重传回指定聊天)
|
||||
#
|
||||
|
||||
"><meta name=theme-color media="(prefers-color-scheme: light)" content="#ffffff"><meta name=theme-color media="(prefers-color-scheme: dark)" content="#343a40"><meta name=color-scheme content="light dark"><meta property="og:url" content="https://sabot.unv.app/"><meta property="og:site_name" content="Save Any Bot"><meta property="og:title" content="介绍"><meta property="og:description" content="Save Any Bot # 把 Telegram 上的文件转存到多种存储端.
|
||||
🎯 特性 # 支持文档/视频/图片/贴纸…甚至还有 Telegraph 破解禁止保存的文件 批量下载 流式传输 多用户使用 基于存储规则的自动整理 监听并自动转存指定聊天的消息, 支持过滤 使用 js 编写解析器插件以转存任意网站的文件 存储端支持: Alist S3 (MinioSDK) WebDAV 本地磁盘 Telegram (重传回指定聊天) 贡献者 #"><meta property="og:locale" content="zh"><meta property="og:type" content="website"><title>介绍 | Save Any Bot</title><link rel=icon href=/favicon.png><link rel=manifest href=/manifest.json><link rel=canonical href=https://sabot.unv.app/><link rel=alternate hreflang=en href=https://sabot.unv.app/en/ title=Introduction><link rel=stylesheet href=/book.min.a22f4c7d8c2bdc5e3d6e34ba11cb59ab50ea5772594e71305bfd5a595dc78b7e.css integrity="sha256-oi9MfYwr3F49bjS6EctZq1DqV3JZTnEwW/1aWV3Hi34=" crossorigin=anonymous><link rel=alternate type=application/rss+xml href=https://sabot.unv.app/index.xml title="Save Any Bot"></head><body dir=ltr><input type=checkbox class="hidden toggle" id=menu-control>
|
||||
🎯 特性 # 支持文档/视频/图片/贴纸…甚至还有 Telegraph 破解禁止保存的文件 批量下载 流式传输 多用户使用 基于存储规则的自动整理 监听并自动转存指定聊天的消息, 支持过滤 使用 js 编写解析器插件以转存任意网站的文件 存储端支持: Alist S3 WebDAV 本地磁盘 Telegram (重传回指定聊天) 贡献者 #"><meta property="og:locale" content="zh"><meta property="og:type" content="website"><title>介绍 | Save Any Bot</title><link rel=icon href=/favicon.png><link rel=manifest href=/manifest.json><link rel=canonical href=https://sabot.unv.app/><link rel=alternate hreflang=en href=https://sabot.unv.app/en/ title=Introduction><link rel=stylesheet href=/book.min.a22f4c7d8c2bdc5e3d6e34ba11cb59ab50ea5772594e71305bfd5a595dc78b7e.css integrity="sha256-oi9MfYwr3F49bjS6EctZq1DqV3JZTnEwW/1aWV3Hi34=" crossorigin=anonymous><link rel=alternate type=application/rss+xml href=https://sabot.unv.app/index.xml title="Save Any Bot"></head><body dir=ltr><input type=checkbox class="hidden toggle" id=menu-control>
|
||||
<input type=checkbox class="hidden toggle" id=toc-control><main class="container flex"><aside class=book-menu><div class=book-menu-content><nav><h2 class=book-brand><a class="flex align-center" href=/><img src=/logo.png alt=Logo class=book-icon><span>Save Any Bot</span></a></h2><ul class=book-languages><li><input type=checkbox id=languages class=toggle>
|
||||
<label for=languages class=flex><a role=button class="flex flex-auto"><img src=/svg/translate.svg class=book-icon alt=Languages>
|
||||
简体中文</a></label><ul><li><a href=/en/>English</a></li></ul></li></ul><ul><li><a href=https://github.com/krau/SaveAny-Bot target=_blank rel=noopener>🔗 GitHub</a></li></ul><ul><li><span>部署指南</span><ul><li><a href=/deployment/installation/>安装与更新</a></li><li><a href=/deployment/configuration/>配置说明</a><ul><li><a href=/deployment/configuration/storages/>存储端配置</a></li></ul></li></ul></li><li><a href=/usage/>使用帮助</a><ul></ul></li><li><a href=/help/>常见问题</a><ul></ul></li><li><a href=/contribute/>参与开发</a><ul></ul></li></ul></nav><script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script></div></aside><div class=book-page><header class=book-header><div class="flex align-center justify-between"><label for=menu-control><img src=/svg/menu.svg class=book-icon alt=Menu></label><h3>介绍</h3><label for=toc-control><img src=/svg/toc.svg class=book-icon alt="Table of Contents"></label></div><aside class="hidden clearfix"><nav id=TableOfContents><ul><li><a href=#-特性>🎯 特性</a></li><li><a href=#贡献者><a href=https://github.com/krau/SaveAny-Bot/graphs/contributors>贡献者</a></a></li></ul></nav></aside></header><article class="markdown book-article"><h1 id=save-any-bot>Save Any Bot
|
||||
@@ -43,7 +43,7 @@ Telegram (重传回指定聊天)
|
||||
<img src="https://img.shields.io/github/license/krau/SaveAny-Bot?style=flat-square" alt>
|
||||
<img src="https://img.shields.io/github/v/release/krau/SaveAny-Bot?color=cyan&style=flat-square" alt>
|
||||
<img src="https://img.shields.io/github/downloads/krau/SaveAny-Bot/total?style=flat-square" alt></p><p>把 Telegram 上的文件转存到多种存储端.</p><h2 id=-特性>🎯 特性
|
||||
<a class=anchor href=#-%e7%89%b9%e6%80%a7>#</a></h2><ul><li>支持文档/视频/图片/贴纸…甚至还有 <a href=https://telegra.ph/>Telegraph</a></li><li>破解禁止保存的文件</li><li>批量下载</li><li>流式传输</li><li>多用户使用</li><li>基于存储规则的自动整理</li><li>监听并自动转存指定聊天的消息, 支持过滤</li><li>使用 js 编写解析器插件以转存任意网站的文件</li><li>存储端支持:<ul><li>Alist</li><li>S3 (MinioSDK)</li><li>WebDAV</li><li>本地磁盘</li><li>Telegram (重传回指定聊天)</li></ul></li></ul><h2 id=贡献者><a href=https://github.com/krau/SaveAny-Bot/graphs/contributors>贡献者</a>
|
||||
<a class=anchor href=#%e8%b4%a1%e7%8c%ae%e8%80%85>#</a></h2><p><img src="https://contrib.rocks/image?repo=krau/SaveAny-Bot&max=750&columns=20" alt=Contributors></p></article><footer class=book-footer><div class="flex flex-wrap justify-between"><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/commit/18eedf2edb57bd454241462a3aea70dd4b8abe8c title='最后修改者 krau | 2025/08/22' target=_blank rel=noopener><img src=/svg/calendar.svg class=book-icon alt>
|
||||
<span>2025/08/22</span></a></div><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/edit/main/docs/content/zh/_index.md target=_blank rel=noopener><img src=/svg/edit.svg class=book-icon alt>
|
||||
<a class=anchor href=#-%e7%89%b9%e6%80%a7>#</a></h2><ul><li>支持文档/视频/图片/贴纸…甚至还有 <a href=https://telegra.ph/>Telegraph</a></li><li>破解禁止保存的文件</li><li>批量下载</li><li>流式传输</li><li>多用户使用</li><li>基于存储规则的自动整理</li><li>监听并自动转存指定聊天的消息, 支持过滤</li><li>使用 js 编写解析器插件以转存任意网站的文件</li><li>存储端支持:<ul><li>Alist</li><li>S3</li><li>WebDAV</li><li>本地磁盘</li><li>Telegram (重传回指定聊天)</li></ul></li></ul><h2 id=贡献者><a href=https://github.com/krau/SaveAny-Bot/graphs/contributors>贡献者</a>
|
||||
<a class=anchor href=#%e8%b4%a1%e7%8c%ae%e8%80%85>#</a></h2><p><img src="https://contrib.rocks/image?repo=krau/SaveAny-Bot&max=750&columns=20" alt=Contributors></p></article><footer class=book-footer><div class="flex flex-wrap justify-between"><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/commit/91814a83c76b67ea1abb4e66b12537374f56c556 title='最后修改者 krau | 2025/12/04' target=_blank rel=noopener><img src=/svg/calendar.svg class=book-icon alt>
|
||||
<span>2025/12/04</span></a></div><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/edit/main/docs/content/zh/_index.md target=_blank rel=noopener><img src=/svg/edit.svg class=book-icon alt>
|
||||
<span>编辑本页</span></a></div></div><script>(function(){function e(e){const t=window.getSelection(),n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){if(window.getSelection().toString())return;e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script></footer><div class=book-comments></div><label for=menu-control class="hidden book-menu-overlay"></label></div><aside class=book-toc><div class=book-toc-content><nav id=TableOfContents><ul><li><a href=#-特性>🎯 特性</a></li><li><a href=#贡献者><a href=https://github.com/krau/SaveAny-Bot/graphs/contributors>贡献者</a></a></li></ul></nav></div></aside></main></body></html>
|
||||
@@ -142,8 +142,8 @@ reload() {
|
||||
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">username</span> = <span style="color:#e6db74">&#34;your_username&#34;</span> <span style="color:#75715e"># WebDAV</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">password</span> = <span style="color:#e6db74">&#34;your_password&#34;</span> <span style="color:#75715e"># WebDAV 的密码</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">base_path</span> = <span style="color:#e6db74">&#34;/path/to/webdav&#34;</span> <span style="color:#75715e"># WebDAV 中的基础路径, 所有文件将存储在此路径下</span>
|
||||
</span></span></code></pre></div><h2 id="minio-s3">
|
||||
MinIO (S3)
|
||||
<a class="anchor" href="#minio-s3">#</a>
|
||||
</span></span></code></pre></div><h2 id="s3">
|
||||
S3
|
||||
<a class="anchor" href="#s3">#</a>
|
||||
</h2>
|
||||
<p><code>type=minio</code></p></description></item></channel></rss>
|
||||
<p><code>type=s3</code></p></description></item></channel></rss>
|
||||
@@ -1 +1 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://sabot.unv.app/zh/sitemap.xml</loc><lastmod>2025-09-13T10:21:10+08:00</lastmod></sitemap><sitemap><loc>https://sabot.unv.app/en/sitemap.xml</loc><lastmod>2025-08-24T14:47:13+08:00</lastmod></sitemap></sitemapindex>
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://sabot.unv.app/zh/sitemap.xml</loc><lastmod>2025-12-04T22:59:23+08:00</lastmod></sitemap><sitemap><loc>https://sabot.unv.app/en/sitemap.xml</loc><lastmod>2025-12-04T22:59:23+08:00</lastmod></sitemap></sitemapindex>
|
||||
@@ -1 +1 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://sabot.unv.app/deployment/</loc><lastmod>2025-06-16T15:58:03+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/"/></url><url><loc>https://sabot.unv.app/usage/</loc><lastmod>2025-08-23T20:42:51+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/usage/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/usage/"/></url><url><loc>https://sabot.unv.app/help/</loc><lastmod>2025-06-16T15:58:03+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/help/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/help/"/></url><url><loc>https://sabot.unv.app/contribute/</loc><lastmod>2025-08-23T20:42:51+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/contribute/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/contribute/"/></url><url><loc>https://sabot.unv.app/categories/</loc><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/categories/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/categories/"/></url><url><loc>https://sabot.unv.app/tags/</loc><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/tags/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/tags/"/></url><url><loc>https://sabot.unv.app/deployment/installation/</loc><lastmod>2025-08-24T14:47:13+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/installation/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/installation/"/></url><url><loc>https://sabot.unv.app/deployment/configuration/storages/</loc><lastmod>2025-06-16T15:58:03+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/configuration/storages/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/configuration/storages/"/></url><url><loc>https://sabot.unv.app/</loc><lastmod>2025-08-22T10:02:44+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/"/></url><url><loc>https://sabot.unv.app/deployment/configuration/</loc><lastmod>2025-09-13T10:21:10+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/configuration/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/configuration/"/></url></urlset>
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://sabot.unv.app/deployment/</loc><lastmod>2025-06-16T15:58:03+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/"/></url><url><loc>https://sabot.unv.app/usage/</loc><lastmod>2025-08-23T20:42:51+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/usage/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/usage/"/></url><url><loc>https://sabot.unv.app/help/</loc><lastmod>2025-06-16T15:58:03+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/help/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/help/"/></url><url><loc>https://sabot.unv.app/contribute/</loc><lastmod>2025-08-23T20:42:51+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/contribute/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/contribute/"/></url><url><loc>https://sabot.unv.app/categories/</loc><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/categories/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/categories/"/></url><url><loc>https://sabot.unv.app/tags/</loc><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/tags/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/tags/"/></url><url><loc>https://sabot.unv.app/deployment/installation/</loc><lastmod>2025-08-24T14:47:13+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/installation/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/installation/"/></url><url><loc>https://sabot.unv.app/deployment/configuration/storages/</loc><lastmod>2025-12-04T22:59:23+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/configuration/storages/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/configuration/storages/"/></url><url><loc>https://sabot.unv.app/</loc><lastmod>2025-12-04T22:59:23+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/"/></url><url><loc>https://sabot.unv.app/deployment/configuration/</loc><lastmod>2025-12-04T22:59:23+08:00</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://sabot.unv.app/en/deployment/configuration/"/><xhtml:link rel="alternate" hreflang="zh" href="https://sabot.unv.app/deployment/configuration/"/></url></urlset>
|
||||
Reference in New Issue
Block a user