Skip to content

压缩包功能缺陷:压缩包内视频无法拖拽进度条(v4.1.10);升级 v4.2.1 后压缩包内文件/文件夹完全无法打开 #2397

@cai20012

Description

@cai20012

Please confirm the following

  • I have read and agree to AGPL-3.0 Section 15 .
    The program is provided "as is" without any warranties; you bear all risks of using it.

  • I have read and agree to AGPL-3.0 Section 16 .
    The copyright holders and distributors are not liable for any damages resulting from the use or inability to use the program.

  • I confirm my description is clear, polite, helps developers quickly locate the issue, and complies with community rules.

  • I have read the OpenList documentation.

  • I confirm there are no duplicate issues or discussions.

  • I confirm this is an OpenList issue, not caused by other reasons (such as network, dependencies, or operation).

  • I believe this issue must be handled by OpenList and not by a third party.

  • I confirm this issue is not fixed in the latest version.

  • I have not read these checkboxes and therefore I just ticked them all, Please close this issue.

OpenList Version (required)

v4.2.1 (Commit: 8d39d63) - Frontend: v4.2.1 - Build at: 2026-04-09 14:32:12 +0000

Storage Driver Used (required)

本地存储

Bug Description (required)

标题

压缩包功能缺陷:视频无法拖拽进度条、浏览压缩包内文件夹异常跳转(控制台仅有 solid-contextmenu-scale

环境

  • 软件:OpenList 桌面版(Windows)
  • 版本:v4.2.1 (Commit: 8d39d63) - Frontend: v4.2.1 - Build at: 2026-04-09 14:32:12 +0000
  • 访问方式:浏览器直接访问 http://127.0.0.1:5244,"未经过任何反向代理"(Nginx 等已排除)
  • 视频文件:H.264 编码的 MP4,大小约 600 MB,文件本身的 moov atom 已移至文件头部(使用 -movflags faststart 处理)
  • 压缩包:ZIP(使用 7-Zip 打包,压缩等级“存储”,并添加 -mcu=on 保证 UTF-8 文件名编码,路径可正确读取),不管是zip还是rar文件。都会有这种问题。(暂未测试7z等特殊压缩文件)

问题一:压缩包内视频无法拖动进度条

现象
在 ZIP 包内直接播放视频时,可以正常开始播放,但只要拖动进度条(快进),视频就会立刻跳回开头重新播放。

问题描述

在 OpenList 中浏览 ZIP 压缩包内的 .mp4 视频文件时:

  1. 视频可以"直接在线播放"。
  2. 播放过程中"拖动进度条(快进)后,视频立即跳回开头重新播放",无法跳转到指定时间点。

复现步骤

  1. 添加包含 MP4 视频的 ZIP 文件(内部路径为英文或 UTF-8 编码)。
  2. 在浏览器中打开 http://127.0.0.1:5244,进入该 ZIP 包目录。
  3. 点击压缩包内的 .mp4 文件 → 视频开始正常播放。
  4. 拖动进度条至任意位置 → 视频瞬间回到 0 秒重新播放。

技术验证(curl)

使用 curl 模拟浏览器的 Range 请求:

curl -I -H "Range: bytes=0-1023" "http://127.0.0.1:5244/openlist1/ae/D:/test/video.zip?sign=xxx&inner=/video.mp4"
实际返回的响应头:
HTTP/1.1 200 OK
Content-Length: 593423518
Content-Type: video/mp4

未出现以下符合 HTTP Range 规范的响应:
状态码 206 Partial Content
Content-Range: bytes 0-1023/593423518
Accept-Ranges: bytes
结论:/ae(压缩包内文件提取)接口完全忽略了 HTTP Range 请求头,始终返回完整文件(状态码 200),导致浏览器无法分段加载,进而无法快进。

对比测试
将同一个 MP4 文件从 ZIP 中解压,放置于普通目录,通过 OpenList 的普通文件接口访问(非 /ae):
视频在线播放正常。
拖动进度条流畅快进,无重新播放现象。
用 curl 发送 Range 请求,正确返回 206 Partial Content 及相关响应头。
这证明:普通文件服务已完美支持 Range 请求,但压缩包内文件提取接口缺少该功能。

期望修复
/ae 接口应解析并支持 Range 请求头,对可流媒体类型(如 video/mp4)返回 206 Partial Content、Content-Range、Accept-Ranges 等标准响应头。

问题二:浏览压缩包内文件夹时跳转异常,且无法查看内部文件
现象
在 ZIP 包内点击某个文件夹,不会进入该文件夹,而是页面直接跳转回压缩包根目录(或者跳转到压缩包所在目录的上层)。
即使删除原 ZIP 并重新添加,问题依旧。
浏览器开发者工具控制台无任何 JavaScript 错误,仅输出一行:solid-contextmenu-scale(来自 solid-contextmenu-ibbBAo_F.js:1)。
复现步骤:
准备一个 ZIP,内部结构如:/folderA/file.jpg。
在浏览器中打开桌面版,进入该 ZIP 包,点击 folderA。
页面没有展示 folderA 的内容,而是直接返回了上层目录(或停留在当前 ZIP 的根目录无变化)。
查看控制台,仅有 solid-contextmenu-scale 输出。
附加说明
该问题在全新安装后依然存在,非缓存或配置残留导致。怀疑与前端的路由/状态管理有关,solid-contextmenu-scale 可能是某个组件的样式类名,但不应成为唯一输出。
期望修复
Range 支持:让 /ae 接口能够解析并响应 Range 请求头,返回 206 Partial Content 及 Content-Range,使压缩包内视频支持快进。
文件夹浏览:修复压缩包内目录跳转异常的问题,确保点击文件夹后能正常展示其内部文件列表,而不是跳回上层。
控制台信息:如果 solid-contextmenu-scale 是意料之外的输出,也请排查相关组件逻辑。
影响
由于压缩包内文件完全无法打开,无法验证问题一(视频进度条)在 v4.2.1 是否仍然存在,也无法正常使用压缩包的任何功能。

Logs (required)

浏览器开发者工具控制台无任何 JavaScript 错误,仅输出一行:solid-contextmenu-scale(来自 solid-contextmenu-ibbBAo_F.js:1)。

Configuration File Content (required)

openlist_backup_2026_4_23 23_29_10.json
不知备份文件能否上传?

Reproduction Link (optional)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions