@ devultur/ 自宿主
Devultur媒体工作者:a 浩诺 用于处理上传的 Cloudflare 工人的应用程序(单一和 多段,直取为R2, 公用和私人发送, 带有边缘缓存, 图像转换, 单用途下载 链接、 休息时加密、 HLS 转码( Cloudflare Contacters、 Fly Machines 或你自己的 HTTP 跑道) 和标题.
安装
pnpm add @devultur/self-host
示例
// src/index.ts
import { createWorker } from "@devultur/self-host";
export { DownloadGrants, DownloadLink } from "@devultur/self-host";
export default createWorker();
# wrangler.toml
name = "media"
main = "src/index.ts"
compatibility_date = "2026-10-01"
[[r2_buckets]]
binding = "MEDIA_BUCKET"
bucket_name = "my-media"
[[r2_buckets]]
binding = "KEYS_BUCKET" # per-object encryption keys: required when security.encrypt is on
bucket_name = "my-media-keys"
[[kv_namespaces]]
binding = "MEDIA_KV" # pending uploads and transcode job state
id = "<your KV namespace id>"
[[durable_objects.bindings]]
name = "DOWNLOAD_LINKS"
class_name = "DownloadLink"
[[durable_objects.bindings]]
name = "DOWNLOAD_GRANTS"
class_name = "DownloadGrants"
[[migrations]]
tag = "v1"
new_sqlite_classes = ["DownloadLink"]
[[migrations]]
tag = "v2"
new_sqlite_classes = ["DownloadGrants"]
wrangler r2 bucket create my-media
wrangler r2 bucket create my-media-keys # keep it private and backed up
wrangler secret put DELIVERY_SIGN_SECRET # signs viewer tokens and links
wrangler secret put WORKER_AUTH_SECRET # your backend's bearer on control routes
wrangler secret put TRANSCODE_WEBHOOK_SECRET # signs transcode callbacks
wrangler deploy
没有秘密,工人失败了:控制路线回答 503。在休息和没有加密的情况下
KEYS_BUCKET,私人写作回答 503 keys_bucket_missing 而不是存储纯文本。 从后端调用它
@devultur/server。工人从插件中构建:
createWorker({ plugins }) 在证书签发前先取出你的规则,你自己的认证,钩子,以及路线和
你自己的中间软件.
文档
- 自主机向导(路线,规则,转码跑道,图像转换): github.com/devultur/devultur/blob/main/docs/guides/自主机.md。 。 。 .
- 插件( 自动、 请求状态、 钩子、 实例插件) : github.com/devultur/devultur/blob/main/docs/指针/插头.md。 。 。 .
- 保留和持有(遵守和治理锁、持有、审计、警告): github.com/devultur/devultur/blob/main/docs/指针/对象锁定.md。 。 。 .
装有包件的三艘向导舰 node_modules/@devultur/self-host/docs/guides/。 。 。 .