前言¶
當助手消息或工具結果中出現本地音視頻/圖片路徑,或在線 http(s) 媒體鏈接時,自動將其替換爲內聯的 <audio> / <video controls playsInline> / <img> 預覽組件。
功能特性¶
本插件基於 unrestricted 模式運行,即 DSH 進程可讀的任何文件路徑均可訪問。權限或 IO 錯誤會以明確的 HTTP 狀態碼返回,方便瀏覽器原生播放器呈現有意義的錯誤提示。
- Range 請求支持:支持
bytes=start-end請求,返回206 Partial Content,使得<video>標籤能夠正常拖拽進度條。 - 全文件讀取:默認使用
GET請求,返回200 OK。 - 緩存策略:響應頭包含
Cache-Control: private, max-age=60。 - 路徑安全:客戶端正則僅匹配特定根路徑(
/Users,/tmp,/private/tmp,/var/folders,/var/tmp)加 15 種擴展名,避免誤匹配外部 URL。同時支持 UTF-8 安全路徑編碼。 - 樣式清理:插件卸載時,客戶端 Fiber 會自動移除注入的
<style>。
支持格式¶
插件支持本地路徑與在線鏈接,支持的擴展名如下:
- 音頻/視頻(15 種):
mp3,wav,m4a,flac,ogg,opus,aac,mp4,mov,mkv,m4v,webm,avi,3gp,ogv - 圖片(12 種):
png,jpg,jpeg,gif,bmp,webp,svg,tiff,ico,avif,heic,heif
安裝與配置¶
- 進入 DSH web profile 目錄(默認爲
~/.dsh/profiles/web)。 - 使用官方命令安裝插件:
dsh plugin --profile web add media-preview
- 插件安裝後會自動修改
package.json,添加dsh.bundle.patch和dsh.client.platform配置項。 - 源碼修改後需重啓
dsh web。
限制與依賴¶
- 緩衝限制:全文件緩衝讀取,單請求上限爲 500 MB。大視頻首幀可能較慢;Range 請求在同一內存緩衝區上切片。
- 目錄與鏈接:不支持目錄列表,無符號鏈接策略(依賴
fs.stat)。 - 依賴:需要
@deepseek-ai/cordis(^4.0.1)。