# @atproto/ozone 中文文档

规范地址：https://npmcn.com/package/%40atproto/ozone/

版本：0\.12\.3
npm 元数据更新时间：2026-11-06T01:46:13.554Z
中文译文更新时间：2026-11-07T03:54:33.726Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40atproto/ozone
原文对照：https://npmcn.com/package/%40atproto/ozone/?lang=original
项目主页：https://atproto.com/
源码仓库：https://github.com/bluesky-social/atproto

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：8.4 MB，4864 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：29 个
- 首次发布：2024-01-18T22:13:54.183Z
- 最新版本发布：2026-11-06T01:46:13.169Z
- 近 30 天下载量：39202（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：269（近 12 个月 93 个）

## 中文简介

提供后端服务来调节Bluesky网络.

## 安装

```sh
npm install @atproto/ozone
```

也可以使用：`pnpm add @atproto/ozone`、`yarn add @atproto/ozone`、`bun add @atproto/ozone`

## README

# @atproto/ozone: Bluesky 温和服务

提供后端服务来调节Bluesky网络.

[![NPM](https://img.shields.io/npm/v/@atproto/ozone)](https://www.npmjs.com/package/@atproto/ozone) [![Github CI Status](https://github.com/bluesky-social/atproto/actions/workflows/repo.yaml/badge.svg)](https://github.com/bluesky-social/atproto/actions/workflows/repo.yaml)

## 已缓存

API 使用有边框的内存文件缓存 。 配置其限制 `OZONE_DID_CACHE_MAX_ENTRIES` (违约10,000起), `OZONE_DID_CACHE_MAX_BYTES` (序列化文件和DID密钥默认为33,554,432字节),以及 `OZONE_DID_CACHE_MAX_DOC_BYTES` (默认每个序列文档65,536字节). 设定任何限制为 `0` 以禁用保留。 超过限额的文件仍然可以解决,但不能缓存. 更改这些设置后重新启动 API .

## 集团转移用途

`OZONE_BLOB_DIVERT_MAX_BYTES` 设定一个被下载用于分流的最大大小。 它必须是正整数并默认为314,572,800字节(300 MiB). 接收服务必须支持同样的规模。 更改此设置后重新启动 API .

## 报表标签

报表自动添加一个理由标记, 如 `report:spam` 默认情况下, 设定 `OZONE_REPORT_TAGS_DISABLED=true` 并重新启动 API 以禁用这些自动报告标记。 未设置或 `false` 保持他们的功能.

环境适用于通过两个机构提交的报告 `com.atproto.moderation.createReport` 财务报告和审定财务报表 `tools.ozone.moderation.emitEvent`。 。 。 .

语言和嵌入标记,手动应用标记,以及现有的报告标记不受影响.

## 以适度行动结束报告

`tools.ozone.moderation.emitEvent` 接受 `reportAction: { allOwned: true }` 用于关闭报表的账户事件。 它将活动与符合资格的账户报告及其记录、信息和对话联系起来. `allOwned` 目标所有报告类型;明确 `ids` 包括这些报告,即使它们被指派或升级。 事件和关闭是一起发生的.

`tools.ozone.report.closeReports` 接受已有的 `actionEventId`. 事件必须是关于所要求主题或其自己账户的结束报告事件; `includeAllOwned` 需要账户事件。 选定报告与该事件相关联,在一个交易中结束。 如果没有事件标识,关闭将保持其不采取行动的结果。 两个API都保护指定,升级和积极指派的报告不被广泛选择. `closeReports` 可额外过滤或排除报告类型.

对于消息事件,匹配报告也必须有事件的对话ID. 这使得在不同的对话中使用同名ID的信息是分开的.

相关事件可能早于报告。 由此产生的行动归属是指该事件,该事件可能不再有效. 上诉前的事件,或与另一主题上诉有关的账户事件,不能确定上诉结果:上诉结果要求以后就被上诉主题发生事件.

## 通关卡标签查询

通关卡图案 `com.atproto.label.queryLabels` 默认已禁用,包括 `*` 并请求混合通配符和准确的图案。 他们返回了HTTP 400 (`InvalidRequest`),带有"支持通配符标签查询暂时被禁用"等信息后再访问数据库. 精确 URI 查询仍然可用 .

设定 `OZONE_LABEL_QUERY_WILDCARDS_ENABLED=true` 并重新启动 API 以恢复通配符支持。 未设置或 `false` 关闭它.

## 历史标签重放

`com.atproto.label.subscribeLabels` 与光标的连接共享每个API进程的历史重放预算. `OZONE_LABEL_STREAM_BACKFILL_RATE` 设置每秒标签的正整数; 默认值为 2000 。 页面包含最多500个标签,所以简短的页面尺寸的相接是可能的. 更改设置后重新启动 API .

这在保存历史和光标命令的同时, 将批量重放 。 大型回填需要更长的时间,多个重放客户端共享预算. 现场订阅和测序投票并不等待这一预算;截取询问仍受现有流缓冲限制的限制.

订阅开始和关闭日志包括连接ID,光标,代理套接字地址/端口,用户代理和转发地址链. 关闭日志添加最后一个序列, 生成事件计数和持续时间 。 转发头和用户代理是归属提示,而不是认证的呼叫者身份; cookie和授权头不在此列.

## 中度查询取消

`queryEvents` 财务报告和审定财务报表 `queryStatuses` 使用 Kysely 的 HTTP 客户端断开时取消其上市 SQL `cancel query` 中止策略 。 Kysely 使用单独的 PostgreSQL 连接进行取消,并保持上市连接直到 SQL 和取消结束. 这没有添加查询截止日期 .

## 中度收件箱状态

设定 `NEXT_PUBLIC_STRIKE_SUSPENSION_CONFIG` 例如,臭氧UI使用的同值 `4:72,8:168,12:336,16:Infinity`每个入口都显示罢工计数至暂停时间; `Infinity` 表示永久中止。 后端保留了完整的地图,并使用了第二和第三个阈值,按打击计数排序,用于 `warning` 财务报告和审定财务报表 `atRisk`。第一层不变。 在没有配置的情况下,站立源于账户的执行和限制;罢工门槛被禁用. 启动时无效的条目失败配置 .

## 调节收件箱起始日期

设定 `OZONE_INBOX_START_AT` aPI 和守护进程到一个 ISO 8601 倍加时区, 例如 `2026-10-15T00:00:00.000Z`。配置使其正常化为 UTC 毫秒,并在启动时拒绝无效值。 失落暴露出所有历史. 未来日期在符合条件的活动发生之前将历史保留为空;改变值需要重新启动服务.

报告只有在 `createdAt` 即使较旧的报告后来得到解决或重新开放,日期或之后。 同样的规定也适用于报告细节和解决行动。 主题要求在该日期或之后采取公开行动;行动计数、首发日期、最新行动、详细历史和报告摘要不包括较早的历史。 更古老的上诉历史被掩盖,而资格仍然尊重早先的上诉。 收件箱呼吁不能针对隐藏动作或对象. 主持人预览使用相同的截取.

账户状态和当前执行仍然有效:主动限制,罢工和标签可以早于收件箱启动. 偏好和所看到的水印不会暴露历史;它们保留了现有的行为. 截取不是被读取的水印,所以一个在起始日期准确创建的项目最初没有被读取.

通知制作方在日期之前跳过活动,并跳过隐藏的报告或上诉主题的过渡. 列表和未读计数独立执行日期和目标能见度,包括现有的已存储通知. API和守护进程必须使用相同的值. 来源报告/行动继续正常记录。 移动更早的日期可以显示更多来源历史, 但跳过的通知不会被回填 。 在选定的开始日期前完成写入器的推出,以避免通知间隙.

报告 - 第一页 `reporterDid` 后补和退休后补习 完成之前部署这个阅读器。 创建记者/时间索引和 `idx_moderation_event_inbox_public_created` 在收件箱迁移前同时生产。 后一种指数 `(subjectDid, createdAt DESC, id DESC)` 因此,主题历史可以查找所配置的日期.

## 罢工期满

客户提供来自严重性设定的罢工金额和过期时间戳. 后端保存它们,并将过期的打击排除在活动总数之外.

未到期的遗留事件需要单独修复. 更改过期有效 不取消降级、停赛或终身罢工总数.

## 许可证

根据麻省理工学院和Apache 2.0条款,这个项目具有双重许可证:

-   麻省理工学院许可证[LICENSE-MIT.txt (英语)](https://github.com/bluesky-social/atproto/blob/main/LICENSE-MIT.txt) 或者说 [http://opensource.org/licenses/MIT 互联网档案馆的存檔,存档日期2013-12-02](http://opensource.org/licenses/MIT)(中文(简体) )
-   Apache 许可证,2.0版本, ([(原始内容存档于2017-09-31) (英语). LICENSE-APACHE.txt](https://github.com/bluesky-social/atproto/blob/main/LICENSE-APACHE.txt) 或者说 [http://www.apache.org/licenses/LICENSE-2.0 (中文(简体) )](http://www.apache.org/licenses/LICENSE-2.0)(中文(简体) )

下游项目和终端用户可自行选择单独或共同发放许可证。 这种双重许可的动机是Apache 2.0提供的额外软件专利保证.

## 常见问题

### @atproto/ozone 是什么？

提供后端服务来调节Bluesky网络\.

### 如何安装 @atproto/ozone？

在项目目录运行 npm install @atproto/ozone，或使用 pnpm add / yarn add / bun add。

### @atproto/ozone 支持 TypeScript 吗？

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

### @atproto/ozone 支持 ESM 还是 CommonJS？

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

### @atproto/ozone 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @atproto/ozone 可以商用吗？

@atproto/ozone 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @atproto/ozone 的下载量有多少？

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

### @atproto/ozone 还在维护吗？

最新版本 0\.12\.3 发布于 2026/11/06（1 天前）；至今共发布 269 个版本，其中过去 12 个月发布了 93 个；首次发布于 2024/01/19。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

