Files
SaveAny-Bot/deployment/configuration/storages/index.html
2026-03-11 11:38:19 +00:00

112 lines
20 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='
存储端配置
#
请先阅读 配置说明 了解配置文件的基本格式.
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 中的基础路径, 所有文件将存储在此路径下
S3
#
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 中的基础路径, 所有文件将存储在此路径下 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="2026-01-30T13:34:29+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><li><a href=/usage/silent/>静默模式</a></li><li><a href=/usage/rules/>存储规则</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/api/>HTTP API</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=#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><li><a href=#rclone>Rclone</a><ul><li><a href=#配置-rclone-远程>配置 rclone 远程</a></li><li><a href=#使用示例>使用示例</a></li></ul></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>&#34;https://alist.example.com&#34;</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>&#34;your_username&#34;</span> <span style=color:#75715e># Alist 的用户名</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># Alist 的密码</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>base_path</span> = <span style=color:#e6db74>&#34;/path/saveanybot&#34;</span> <span style=color:#75715e># Alist 中的基础路径, 所有文件将存储在此路径下</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>token_exp</span> = <span style=color:#ae81ff>3600</span> <span style=color:#75715e># Alist 访问令牌的自动刷新时间, 单位秒</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>token</span> = <span style=color:#e6db74>&#34;your_token&#34;</span>
</span></span><span style=display:flex><span><span style=color:#75715e># Alist 的访问令牌, 可选, 如果不设置则使用用户名和密码进行身份验证. </span>
</span></span><span style=display:flex><span><span style=color:#75715e># 使用 token 验证时无法自动刷新 token</span>
</span></span></code></pre></div><h2 id=本地磁盘>本地磁盘
<a class=anchor href=#%e6%9c%ac%e5%9c%b0%e7%a3%81%e7%9b%98>#</a></h2><p><code>type=local</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>base_path</span> = <span style=color:#e6db74>&#34;./downloads&#34;</span> <span style=color:#75715e># 本地存储的基础路径, 所有文件将存储在此路径下</span>
</span></span></code></pre></div><h2 id=webdav>WebDAV
<a class=anchor href=#webdav>#</a></h2><p><code>type=webdav</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>url</span> = <span style=color:#e6db74>&#34;https://webdav.example.com&#34;</span> <span style=color:#75715e># WebDAV 的 URL</span>
</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=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>&#34;s3.example.com&#34;</span> <span style=color:#75715e># S3 的端点, 默认为 aws S3 的端点</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>region</span> = <span style=color:#e6db74>&#34;us-east-1&#34;</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>&#34;your_access_key_id&#34;</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>&#34;your_secret_access_key&#34;</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>&#34;your_bucket_name&#34;</span> <span style=color:#75715e># S3 的存储桶名称</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>base_path</span> = <span style=color:#e6db74>&#34;/path/to/s3&#34;</span> <span style=color:#75715e># S3 中的基础路径, 所有文件将存储在此路径下</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>virtual_host</span> = <span style=color:#66d9ef>false</span> <span style=color:#75715e># 使用虚拟主机风格的 URL, 默认为 false</span>
</span></span></code></pre></div><p>虚拟主机风格的 URL 示例:</p><pre tabindex=0><code>https://your_bucket_name.s3.example.com/path/to/s3/your_file
</code></pre><p>路径风格(关闭 virtual_host)的 URL 示例:</p><pre tabindex=0><code>https://s3.example.com/your_bucket_name/path/to/s3/your_file
</code></pre><p>如果你使用的是第三方的兼容 S3 的服务, 一般使用的是路径风格的 URL. 而 AWS S3 则通常使用虚拟主机风格的 URL. 详情请参考你所使用的 S3 兼容服务的文档.</p><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:#75715e># Telegram 聊天 ID, Bot 将把文件发送到这个聊天</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>chat_id</span> = <span style=color:#e6db74>&#34;123456789&#34;</span>
</span></span><span style=display:flex><span><span style=color:#75715e># 是否强制使用文件方式发送, 默认为 false</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>force_file</span> = <span style=color:#66d9ef>false</span>
</span></span><span style=display:flex><span><span style=color:#75715e># 是否跳过大文件, 默认为 false. 如果启用, 超过 Telegram 限制的文件将不会上传.</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>skip_large</span> = <span style=color:#66d9ef>false</span>
</span></span><span style=display:flex><span><span style=color:#75715e># 分卷大小, 单位 MB, 默认为 2000 MB (2 GB). </span>
</span></span><span style=display:flex><span><span style=color:#75715e># 超过该大小的文件将被分割成多个部分上传.(使用 zip 格式)</span>
</span></span><span style=display:flex><span><span style=color:#75715e># 当 skip_large 启用时, 该选项无效.</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>spilt_size_mb</span> = <span style=color:#ae81ff>2000</span>
</span></span></code></pre></div><h2 id=rclone>Rclone
<a class=anchor href=#rclone>#</a></h2><p><code>type=rclone</code></p><p>通过 <a href=https://rclone.org/>rclone</a> 命令行工具支持多种云存储服务. 需要先安装 rclone 并配置好远程存储.</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:#75715e># rclone 配置的远程名称, 可以是任何在 rclone.conf 中配置的远程</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>remote</span> = <span style=color:#e6db74>&#34;mydrive&#34;</span>
</span></span><span style=display:flex><span><span style=color:#75715e># 在远程存储中的基础路径, 所有文件将存储在此路径下</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>base_path</span> = <span style=color:#e6db74>&#34;/telegram&#34;</span>
</span></span><span style=display:flex><span><span style=color:#75715e># rclone 配置文件的路径, 可选, 留空使用默认路径 (~/.config/rclone/rclone.conf)</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>config_path</span> = <span style=color:#e6db74>&#34;&#34;</span>
</span></span><span style=display:flex><span><span style=color:#75715e># 传递给 rclone 命令的额外参数, 可选</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>flags</span> = [<span style=color:#e6db74>&#34;--transfers&#34;</span>, <span style=color:#e6db74>&#34;4&#34;</span>, <span style=color:#e6db74>&#34;--checkers&#34;</span>, <span style=color:#e6db74>&#34;8&#34;</span>]
</span></span></code></pre></div><h3 id=配置-rclone-远程>配置 rclone 远程
<a class=anchor href=#%e9%85%8d%e7%bd%ae-rclone-%e8%bf%9c%e7%a8%8b>#</a></h3><p>首先需要配置 rclone 远程, 运行 <code>rclone config</code> 命令进行交互式配置, 或直接编辑 <code>rclone.conf</code> 文件.</p><p>rclone 支持多种云存储服务, 包括但不限于:</p><ul><li>Google Drive</li><li>Dropbox</li><li>OneDrive</li><li>Amazon S3 及兼容服务</li><li>SFTP</li><li>FTP</li><li>更多服务请参考 <a href=https://rclone.org/overview/>rclone 官方文档</a></li></ul><h3 id=使用示例>使用示例
<a class=anchor href=#%e4%bd%bf%e7%94%a8%e7%a4%ba%e4%be%8b>#</a></h3><p>配置 Google Drive 后, 可以这样配置存储:</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>&#34;GoogleDrive&#34;</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>type</span> = <span style=color:#e6db74>&#34;rclone&#34;</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>enable</span> = <span style=color:#66d9ef>true</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>remote</span> = <span style=color:#e6db74>&#34;gdrive&#34;</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>base_path</span> = <span style=color:#e6db74>&#34;/SaveAnyBot&#34;</span>
</span></span></code></pre></div><p>如果使用自定义的 rclone 配置文件:</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>&#34;MyRemote&#34;</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>type</span> = <span style=color:#e6db74>&#34;rclone&#34;</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>enable</span> = <span style=color:#66d9ef>true</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>remote</span> = <span style=color:#e6db74>&#34;myremote&#34;</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>base_path</span> = <span style=color:#e6db74>&#34;/backup&#34;</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>config_path</span> = <span style=color:#e6db74>&#34;/path/to/rclone.conf&#34;</span>
</span></span><span style=display:flex><span><span style=color:#a6e22e>flags</span> = [<span style=color:#e6db74>&#34;--progress&#34;</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/8b86330f5c823cffe8e7d503f736699a0c9d981c title='最后修改者 Krau | 2026/01/30' target=_blank rel=noopener><img src=/svg/calendar.svg class=book-icon alt>
<span>2026/01/30</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><li><a href=#rclone>Rclone</a><ul><li><a href=#配置-rclone-远程>配置 rclone 远程</a></li><li><a href=#使用示例>使用示例</a></li></ul></li></ul></nav></div></aside></main></body></html>