#缩略图 #目录 #索引器 #视频 #图像 #服务器端 #预览

应用 dexr

具有缩略图、预览和幻灯片功能的目录索引器

13个不稳定版本 (3个重大更改)

0.4.3 2022年10月25日
0.4.2 2022年9月10日
0.3.3 2022年5月26日
0.3.0 2022年4月27日
0.1.1 2022年3月3日

132多媒体

每月47次下载

AGPL-3.0-or-later

50KB
1.5K SLoC

Rust 1K SLoC // 0.0% comments JavaScript 207 SLoC // 0.0% comments

dexr

具有缩略图、预览和幻灯片功能的目录索引器。

它旨在成为Lars Jung的H5AI的一个更快、更轻量级的版本。

功能

* = 需要 JS

  • 基本页面完全服务器端渲染
  • 最小化界面,没有过多的样式
    • 努力使其尽可能易于访问(如果看到可以改进的地方,请通过电子邮件联系我!)
  • 大多数图像和视频的缩略图
    • 缓存在可配置的临时目录中
  • 排序
  • *图像和视频的页面内预览
    • 支持基于键盘的使用:左右箭头、Home、End
  • *幻灯片
    • 通过键盘(s)或鼠标激活
    • 自定义间隔

配置

配置放在名为 dexr.toml 的文件中,该文件位于可执行文件的工作目录中,也可以通过环境变量指定。

环境变量的名称为 DEXR_<SCREAMING_SNAKE_CASE_KEY>,例如,address 字段将是 DEXR_ADDRESS。如果在两个位置都指定了密钥,则环境变量具有优先级。

以下键可以用于配置

类型 默认值 含义 示例/可能值
address 见下文 None 服务器监听的地址 "tcp://127.0.0.1:3000"
index_root 路径 None 将要索引的目录 "/srv/my-public-files"
thumbnail_tmp 路径 None 缩略图缓存的位置* "/var/tmp/dexr-thumbnails"
exclude_dotfiles 布尔值 true 是否在索引中隐藏点文件,如果访问则返回404 false

address 格式

地址可以是TCP地址或Unix套接字路径。TCP地址的格式为tcp://<host>:<port>,例如tcp://127.0.0.1:3000。Unix套接字的格式为unix://<path to socket>,例如unix:///tmp/indexer/socket.sock。如果没有指定协议前缀(如<protocol>://),则默认为TCP地址,例如localhost:3000

thumbnail_tmp 注解

建议您使用非易失性临时目录(如/var/tmp而不是/tmp),以避免不必要地重新生成缩略图。

GStreamer

我们使用gstreamer进行缩略图生成。我们建议以下gstreamer插件以支持尽可能多的媒体

  • gst-libav
  • gst-plugins-bad
  • gst-plugins-base
  • gst-plugins-good
  • gst-plugins-openh264
  • gst-plugins-ugly

软件包名称可能因您的发行版而异;上述名称来自Arch Linux。例如,在Debian上,软件包名称以前缀<gstreamer1>.0开头,而不是gst

重写

这是对https://git.matt.felle.nz/matt/indexer的重写,使用axum代替actix,以及其他一些不同之处

  • 我们仅使用gstreamer进行缩略图生成,而不是vid2img(底层使用gstreamer)和image的组合。由于某种原因,gstreamer要快得多。
  • 排序在服务器上完成。
  • 已删除一些配置选项(缩略图大小、目录大小格式)

依赖关系

~21–32MB
~527K SLoC