Files
SaveAny-Bot/usage/rules/index.html
2026-06-28 10:00:28 +00:00

66 lines
12 KiB
HTML

<!doctype html><html lang=zh dir=ltr><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content='
存储规则
#
允许你为 Bot 在上传文件到存储时设置一些重定向规则, 用于自动整理所保存的文件.
见: #28
目前支持的规则类型:
FILENAME-REGEX
MESSAGE-REGEX
IS-ALBUM
添加规则的基本语法:
&ldquo;规则类型 规则内容 存储名 路径&rdquo;
注意空格的使用, 语法正确 bot 才能解析, 以下是一条合法的添加规则命令:
/rule add FILENAME-REGEX (?i)\.(mp4|mkv|ts|avi|flv)$ MyAlist /视频
此外, 规则中的存储名若使用 &ldquo;CHOSEN&rdquo; , 则表示存储到点击按钮选择的存储端的路径下
你也可以使用 /rule switch 来开关规则模式. 关闭规则模式时, 所有文件都将保存到默认存储.
预设规则
#
为常见文件类型手动编写正则规则比较繁琐, 因此 Bot 内置了一组预设分类 (视频、图片、音频、文档、压缩包), 可以通过一条命令批量导入:
/rule preset <存储名> [基础路径]
参数:
存储名: 目标存储名 (必须存在且你有权访问)
基础路径: 可选. 各预设分类的子目录会创建在此路径下; 若不填则直接使用默认分类目录名
示例:
# 导入预设规则到 "MyAlist", 使用默认目录布局
/rule preset MyAlist
# 在自定义基础路径 "downloads/sorted" 下导入预设规则
/rule preset MyAlist downloads/sorted
此命令会为每个分类创建 FILENAME-REGEX 规则, 将匹配的文件路由到 基础路径 下对应的子目录:'><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/usage/rules/"><meta property="og:site_name" content="Save Any Bot"><meta property="og:title" content="存储规则"><meta property="og:description" content='存储规则 # 允许你为 Bot 在上传文件到存储时设置一些重定向规则, 用于自动整理所保存的文件.
见: #28
目前支持的规则类型:
FILENAME-REGEX MESSAGE-REGEX IS-ALBUM 添加规则的基本语法:
“规则类型 规则内容 存储名 路径”
注意空格的使用, 语法正确 bot 才能解析, 以下是一条合法的添加规则命令:
/rule add FILENAME-REGEX (?i)\.(mp4|mkv|ts|avi|flv)$ MyAlist /视频 此外, 规则中的存储名若使用 “CHOSEN” , 则表示存储到点击按钮选择的存储端的路径下
你也可以使用 /rule switch 来开关规则模式. 关闭规则模式时, 所有文件都将保存到默认存储.
预设规则 # 为常见文件类型手动编写正则规则比较繁琐, 因此 Bot 内置了一组预设分类 (视频、图片、音频、文档、压缩包), 可以通过一条命令批量导入:
/rule preset <存储名> [基础路径] 参数:
存储名: 目标存储名 (必须存在且你有权访问) 基础路径: 可选. 各预设分类的子目录会创建在此路径下; 若不填则直接使用默认分类目录名 示例:
# 导入预设规则到 "MyAlist", 使用默认目录布局 /rule preset MyAlist # 在自定义基础路径 "downloads/sorted" 下导入预设规则 /rule preset MyAlist downloads/sorted 此命令会为每个分类创建 FILENAME-REGEX 规则, 将匹配的文件路由到 基础路径 下对应的子目录:'><meta property="og:locale" content="zh"><meta property="og:type" content="article"><meta property="article:section" content="usage"><meta property="article:modified_time" content="2026-06-28T18:00:02+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/usage/rules/><link rel=alternate hreflang=en href=https://sabot.unv.app/en/usage/rules/ title="Storage Rules"><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/usage/rules/>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><li><a href=/usage/silent/>静默模式</a></li><li><a href=/usage/rules/ class=active>存储规则</a></li><li><a href=/usage/watch/>监听聊天</a></li><li><a href=/usage/directlinks/>直接下载链接</a></li><li><a href=/usage/aria2/>Aria2 下载</a></li><li><a href=/usage/ytdlp/>yt-dlp 视频下载</a></li><li><a href=/usage/transfer/>存储间传输</a></li><li><a href=/usage/parsers/>转存 Telegram 之外的文件</a></li><li><a href=/usage/config/>文件命名与重名策略</a></li><li><a href=/usage/api/>HTTP API</a></li><li><a href=/usage/cli/>命令行子命令</a></li></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=#filename-regex>FILENAME-REGEX</a></li><li><a href=#message-regex>MESSAGE-REGEX</a></li><li><a href=#is-album>IS-ALBUM</a></li></ul></nav></aside></header><article class="markdown book-article"><h1 id=存储规则>存储规则
<a class=anchor href=#%e5%ad%98%e5%82%a8%e8%a7%84%e5%88%99>#</a></h1><p>允许你为 Bot 在上传文件到存储时设置一些重定向规则, 用于自动整理所保存的文件.</p><p>见: <a href=https://github.com/krau/SaveAny-Bot/issues/28 target=_blank>#28</a></p><p>目前支持的规则类型:</p><ol><li>FILENAME-REGEX</li><li>MESSAGE-REGEX</li><li>IS-ALBUM</li></ol><p>添加规则的基本语法:</p><p>&ldquo;规则类型 规则内容 存储名 路径&rdquo;</p><p>注意空格的使用, 语法正确 bot 才能解析, 以下是一条合法的添加规则命令:</p><pre tabindex=0><code>/rule add FILENAME-REGEX (?i)\.(mp4|mkv|ts|avi|flv)$ MyAlist /视频
</code></pre><p>此外, 规则中的存储名若使用 &ldquo;CHOSEN&rdquo; , 则表示存储到点击按钮选择的存储端的路径下</p><p>你也可以使用 <code>/rule switch</code> 来开关规则模式. 关闭规则模式时, 所有文件都将保存到默认存储.</p><h2 id=预设规则>预设规则
<a class=anchor href=#%e9%a2%84%e8%ae%be%e8%a7%84%e5%88%99>#</a></h2><p>为常见文件类型手动编写正则规则比较繁琐, 因此 Bot 内置了一组预设分类 (视频、图片、音频、文档、压缩包), 可以通过一条命令批量导入:</p><pre tabindex=0><code>/rule preset &lt;存储名&gt; [基础路径]
</code></pre><p>参数:</p><ul><li><code>存储名</code>: 目标存储名 (必须存在且你有权访问)</li><li><code>基础路径</code>: 可选. 各预设分类的子目录会创建在此路径下; 若不填则直接使用默认分类目录名</li></ul><p>示例:</p><pre tabindex=0><code># 导入预设规则到 &#34;MyAlist&#34;, 使用默认目录布局
/rule preset MyAlist
# 在自定义基础路径 &#34;downloads/sorted&#34; 下导入预设规则
/rule preset MyAlist downloads/sorted
</code></pre><p>此命令会为每个分类创建 <code>FILENAME-REGEX</code> 规则, 将匹配的文件路由到 <code>基础路径</code> 下对应的子目录:</p><table><thead><tr><th>分类</th><th>匹配的扩展名</th><th>默认目录</th></tr></thead><tbody><tr><td>视频</td><td>mp4, mkv, ts, avi, flv, mov, webm, wmv, rmvb, m2ts</td><td><code>视频</code></td></tr><tr><td>图片</td><td>jpg, jpeg, png, gif, webp, bmp</td><td><code>图片</code></td></tr><tr><td>音频</td><td>mp3, flac, wav, aac, m4a, ogg</td><td><code>音频</code></td></tr><tr><td>文档</td><td>pdf, doc, docx, xls, xlsx, ppt, pptx, txt, md, csv, epub, mobi, azw3, chm</td><td><code>文档</code></td></tr><tr><td>压缩包</td><td>zip, rar, 7z, tar, gz, bz2, xz, &mldr;</td><td><code>压缩包</code></td></tr></tbody></table><blockquote class="book-hint info">导入后的预设规则就是普通的 `FILENAME-REGEX` 规则. 你可以像其他规则一样通过 `/rule` 查看或用 `/rule del <id>` 单独删除/编辑它们.</blockquote><p>规则类型:</p><h2 id=filename-regex>FILENAME-REGEX
<a class=anchor href=#filename-regex>#</a></h2><p>根据文件名正则匹配, 规则内容要求为一个合法的正则表达式, 如</p><pre tabindex=0><code>FILENAME-REGEX (?i)\.(mp4|mkv|ts|avi|flv)$ MyAlist /视频
</code></pre><p>表示将文件名后缀为 mp4,mkv,ts,avi,flv 的文件放到名为 MyAlist 存储下的 /视频 目录内 (同时受配置文件中的 <code>base_path</code> 影响)</p><h2 id=message-regex>MESSAGE-REGEX
<a class=anchor href=#message-regex>#</a></h2><p>同上, 但是是根据消息本身的文本内容正则匹配</p><h2 id=is-album>IS-ALBUM
<a class=anchor href=#is-album>#</a></h2><p>匹配相册消息 (media group), 规则内容只能为 <code>true</code><code>false</code>.</p><p>规则中的路径若使用 &ldquo;NEW-FOR-ALBUM&rdquo; , 则表示为该组消息新建一个文件夹来存储它们. 见: <a href=https://github.com/krau/SaveAny-Bot/issues/87>https://github.com/krau/SaveAny-Bot/issues/87</a></p><p>例如:</p><pre tabindex=0><code>IS-ALBUM true MyWebdav NEW-FOR-ALBUM
</code></pre><p>这将会把以 media group 形式发送的消息保存到名为 MyWebdav 的存储下, 并为每个相册新建一个文件夹(由第一个文件生成)来存储它们.</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/c9bb6c9e3c325c83ffef5bbe4fa54a58b82de2df title='最后修改者 krau | 2026/06/28' target=_blank rel=noopener><img src=/svg/calendar.svg class=book-icon alt>
<span>2026/06/28</span></a></div><div><a class="flex align-center" href=https://github.com/krau/saveany-bot/edit/main/docs/content/zh/usage/rules.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=#filename-regex>FILENAME-REGEX</a></li><li><a href=#message-regex>MESSAGE-REGEX</a></li><li><a href=#is-album>IS-ALBUM</a></li></ul></nav></div></aside></main></body></html>