@aglyn/plugins-video-delivery

中文文档
1.18.0发布于 2026/11/07Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 9663

Library video served from Cloudflare R2 through a Worker, behind core's media delivery contract (core.media-delivery in @aglyn/aglyn/plugin-manager/media-delivery-provider). Core makes every access decision and never names a provider; this plugin hold

原始使用文档
文档目录4 节
  1. Install
  2. Switches
  3. What stays true while this plugin is on
  4. License

@aglyn/plugins-video-delivery

Library video served from Cloudflare R2 through a Worker, behind core's media delivery contract (core.media-delivery in @aglyn/aglyn/plugin-manager/media-delivery-provider). Core makes every access decision and never names a provider; this plugin holds the copies and serves them.

Published to npm from the Aglyn monorepo. Versions follow semantic versioning.

Install

npm install @aglyn/plugins-video-delivery

A plugin is loaded through Aglyn's plugin manager (@aglyn/aglyn) by the console and the tenant runtime; it is not a standalone library.

  • declarations.server.ts — registers the provider at boot in both apps (serverDeclarations in plugins.config.json).
  • video-delivery-provider.ts — the adapter: copies go to R2 through its S3 API, and delivery URLs are minted on MEDIA_VIDEO_DELIVERY_HOST.
  • r2-object-store.ts, sigv4.ts — the four S3 calls the copy flow makes, signed with SigV4 on Web Crypto. No SDK.
  • delivery-token.ts — the one token format the platform mints and the Worker verifies.
  • worker/video-worker.ts — the Worker. It verifies the token (expiry, signature and the object key it names) and serves the object from its bucket binding, with ranges and HEAD. wrangler.jsonc deploys it as the Worker video.

Switches

Nothing here runs until all three are on:

  1. The settings. store needs R2_ACCOUNT_ID, R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY and R2_VIDEO_BUCKET — only where copies are written, which is the console. deliver needs MEDIA_VIDEO_DELIVERY_HOST and MEDIA_VIDEO_DELIVERY_SECRET wherever a URL is minted: the console and the tenant app. The secret is not TOKEN_SIGNING_SECRET, and the Worker holds the same value as its own secret.
  2. The release flag release_video_delivery, per org. It gates copying as well as delivery.
  3. A copy made from the asset's current bytes. Until one exists, the video serves from the platform as it always has.

What stays true while this plugin is on

  • Published pages admit the delivery host in media-src on their own (mediaDeliveryOrigin in the repo-root security-origins.js, which reads MEDIA_VIDEO_DELIVERY_HOST by the rules videoDeliveryOrigin applies; a spec here holds the two to the same answers). Without it the browser refuses the redirect.
  • The platform's bucket keeps every video, and the storage counter counts it once; a copy's size is never added to it. Making the R2 copy the ONLY copy is a later step, and the storage cost model for video depends on that step .
  • Cloudflare receives customer video and, in transit, the viewer's IP address and user agent. It must be on /legal/subprocessors before the flag is on for any customer. The owner decides and publishes that; this plugin declares no subprocessors entry until the page carries the row.

License

Apache-2.0. Source: https://github.com/aglyn/aglyn/tree/main/libs/plugins/video-delivery

版本与发布记录

@aglyn/plugins-video-delivery 共发布 161 个版本,首次发布于 2026/09/21;过去 12 个月发布了 161 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.18.0latest2026/11/07今天
1.17.02026/11/07今天
1.16.02026/11/07今天
1.15.22026/11/061 天前
1.15.12026/11/061 天前
1.15.02026/11/061 天前

其他发布通道:beta → 1.0.0-beta.296。

关于 @aglyn/plugins-video-delivery 的常见问题

@aglyn/plugins-video-delivery 是什么?

Library video served from Cloudflare R2 through a Worker, behind core's media delivery contract (core.media-delivery in @aglyn/aglyn/plugin-manager/media-delivery-provider). Core makes every access decision and never names a provider; this plugin hold

如何安装 @aglyn/plugins-video-delivery?

在项目目录运行 npm install @aglyn/plugins-video-delivery,或使用 pnpm add / yarn add / bun add。

@aglyn/plugins-video-delivery 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aglyn/plugins-video-delivery 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@aglyn/plugins-video-delivery 可以商用吗?

@aglyn/plugins-video-delivery 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aglyn/plugins-video-delivery 的下载量有多少?

根据 npm 官方下载统计,@aglyn/plugins-video-delivery 在 2026/10/05 – 2026/11/03 这 30 天内被下载 9,663 次,日均约 322 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aglyn/plugins-video-delivery 还在维护吗?

最新版本 1.18.0 发布于 2026/11/07(今天);至今共发布 161 个版本,其中过去 12 个月发布了 161 个;首次发布于 2026/09/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。