diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 71c1cf0..83afc7d 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -61,6 +61,13 @@ export default defineConfig({ { text: "获取投稿信息", link: "/submission" }, ], }, + { + text: "其它", + items: [ + { text: "常见问题", link: "/question" }, + { text: "管理页", link: "/frontend" }, + ], + } ], socialLinks: [ { icon: "github", link: "https://github.com/amtoaer/bili-sync" }, diff --git a/docs/assets/frontend.webp b/docs/assets/frontend.webp new file mode 100644 index 0000000..f01a8af Binary files /dev/null and b/docs/assets/frontend.webp differ diff --git a/docs/assets/swagger.webp b/docs/assets/swagger.webp new file mode 100644 index 0000000..bc34f16 Binary files /dev/null and b/docs/assets/swagger.webp differ diff --git a/docs/configuration.md b/docs/configuration.md index 12fa047..02c3e34 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -49,6 +49,16 @@ > [!CAUTION] > **路径分隔符**在不同平台定义不同,Windows 下为 `\`,MacOS 和 Linux 下为 `/`。 +## `auth_token` + +表示调用程序管理 API 需要的身份凭据,程序会检查 API 请求 Header 中是否包含正确的 `Authorization` 字段。 + +内置管理页前端提供了 `auth_token` 的输入框,填写后即可成功调用 API 使用管理页。 + +## `bind_address` + +程序 Web Server 监听的地址,程序启动时会监听该地址,成功后可通过 `http://${bind_address}` 访问管理页。 + ## `interval` 表示程序每次执行扫描下载的间隔时间,单位为秒。 diff --git a/docs/frontend.md b/docs/frontend.md new file mode 100644 index 0000000..c3be041 --- /dev/null +++ b/docs/frontend.md @@ -0,0 +1,13 @@ +# 管理页 + +在 2.4.0 版本,bili-sync 提供了一个内置的管理页,可以使用浏览器访问,实现一些简单的预览和重置操作。 + +由于作者的前端水平有限,网页使用 90% AI + 10% 人工实现,问题会比较多,欢迎前端大能 PR(应该说比起 PR 缝缝补补不如直接重写 XD)。 + +![frontend](./assets/frontend.webp) + +# API + +后端提供的 API 可以通过 `/swagger-ui/` 访问: + +![swagger](./assets/swagger.webp) diff --git a/docs/question.md b/docs/question.md new file mode 100644 index 0000000..76904e0 --- /dev/null +++ b/docs/question.md @@ -0,0 +1,25 @@ +# 常见问题 + +## 各种文件找不到问题,如运行后找不到初始 `config.toml`、提示成功下载但看不到视频文件等。 + +请检查挂载位置与配置文件填写是否正确,需要理解的是: +1. 容器挂载是把宿主机的 `/A` 挂载到容器内的 `/B`; +2. 程序运行在容器中,能够读取、写入的目录只能是 `/B`,因此配置文件内填写的路径只能与 `/B` 有关。 + +## 下载视频出现 Permission denied、Operation not permitted 等错误。 + +有两种可能的原因: +1. 容器运行时指定了 `user`(非 root),但配置文件并未正确填写挂载后的路径。此时目标路径只是一个普通的容器内路径,非 root 用户无法修改,导致执行出错; +2. 配置文件正确填写了挂载后的路径,此时出现权限错误说明你为容器指定的 `user` 无权写入宿主机上的原始路径。需检查宿主机原始路径的文件权限。 + +## 下载某个视频连续多次出现 `error decoding response body` 错误 + +这个问题我也出现过几次,目前还不清楚原因,但怀疑是 b 站服务器使用某种检测机制拒绝了响应。 + +bili-sync 在 2.4.0 版本引入了一个改动,不将此错误计入错误次数,允许其无限重试,我过去下载失败的某个视频使用这个策略在多次尝试后成功了。 + +尽管如此,该解决方案仍然比较玄学,需要将来能够查明具体原因再加以修复。 + +## 有些视频已经达到了最大重试次数还没有成功,我可以手动重试吗? + +2.4.0 版本引入了一个简陋的[管理页](/frontend)来支持这个功能,你可以查询特定视频并点击重置,这样在下次下载任务触发时就会重试这个任务了。 \ No newline at end of file diff --git a/docs/quick-start.md b/docs/quick-start.md index 79132fb..c5fca41 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -33,6 +33,10 @@ services: user: 1000:1000 hostname: bili-sync-rs container_name: bili-sync-rs + # 程序默认绑定 0.0.0.0:12345 运行 http 服务 + # 可同时修改 compose 文件与 config.toml 变更服务运行的端口 + ports: + - 12345:12345 volumes: - ${你希望存储程序配置的目录}:/app/.config/bili-sync # 还需要有一些其它必要的挂载,包括 up 主信息位置、视频下载位置 @@ -69,6 +73,8 @@ services: 当前版本的默认示例文件如下: ```toml +auth_token = "xxxxxxxx" +bind_address = "0.0.0.0:12345" video_name = "{{title}}" page_name = "{{bvid}}" interval = 1200 @@ -133,6 +139,16 @@ duration = 250 虽然配置文件看起来很长,但绝大部分选项是不需要做修改的。一般来说,我们只需要关注其中的少数几个,以下逐条说明。 +### `auth_token` + +表示调用程序管理 API 需要的身份凭据,程序会检查 API 请求 Header 中是否包含正确的 `Authorization` 字段。 + +内置管理页前端提供了 `auth_token` 的输入框,填写后即可成功调用 API 使用管理页。 + +### `bind_address` + +程序 Web Server 监听的地址,程序启动时会监听该地址,成功后可通过 `http://${bind_address}` 访问管理页。 + ### `interval` 表示程序每次执行扫描下载的间隔时间,单位为秒。