spark-server/docs/media.md

1.9 KiB
Raw Blame History

媒体压缩与检测

App 端主压缩;服务端对用户路径做检测,对机器人路径强制压缩后写对象存储。

规格(与 App 对齐)

类型 最长边 体积参考
普通图片(广场/朋友圈等) ≤ 1080 ≤ 10 MiB
视频 ≤ 720 ≤ 100 MiB
头像 ≤ 200×200 ≤ 2 MiB

检测点(用户上传)

时机 位置 行为
申请上传凭证 upload/logic.CreateCredential → checkDeclaredSize 按 purpose 校验声明 size;超限默认 打 Warn 日志,media.user_reject=true 时返回 40005
广场发帖 square/logic.publish → checkPublishMedia 用客户端声明的图/视频宽高与 size 校验;同上
朋友圈发帖 moment/logic.publish → checkPublishMedia 同上

主压缩仍在 App 上传前;服务端不把用户文件再压一遍(除非开启拒收)。

机器人压缩点

时机 位置 行为
RSS 配图 squarebot Tick → attachMedia → MediaCompressor.FetchImage → objectstore.Put 下载后压到 ≤1080,再写入 perm/square/image/
机器人视频路径 PrepareVideoAsset / FetchVideo ffmpeg 压到 ≤720(部署需 ffmpeg)
机器人头像 FetchAvatar / PrepareBotAvatar ≤200×200

开关:media.bot_compress(默认 true)。关闭时机器人帖仍发文字摘要+链接,不拉配图。

配置

见 configs/config.yaml 的 media: 与 square_bot:。

部署注意

  • 视频压缩依赖主机 ffmpeg(media.ffmpeg_path,默认 ffmpeg)。
  • 迁移:migrations/0026_square_bot_rss.sql(source / source_url / expires_at + t_square_bot_links)。
  • Seed:go run ./cmd/seed -config configs/config.yaml 确保 bot001@spark.bot… 存在。