
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Api Policy Component是一个HTTP服务,为授权合作伙伴提供阅读器端点的门面。它主要功能包括:为B2B合作伙伴添加计算字段、屏蔽或隐藏非授权内容、根据账户配置重写查询。该组件通常与代理(Varnish)一起部署在其与实际阅读器端点之间,因此阅读器端点配置选项称为代理配置选项。
该门面不定义自己的端点或接口契约,而是对Reader API的接口进行特定修改,且对其了解有限。
注意:一个策略可能被多个过滤器使用,过滤器也可能与多个策略协同工作。
| Api过滤器 | 描述 | 应用端点 |
|---|---|---|
| identifiersFilter | 除非存在INCLUDE_IDENTIFIERS策略,否则从响应中移除identifiers字段 | /content, /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent |
| webUrlAdder | 为特定内容的响应添加webUrl字段 | /content, /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent |
| AddCanonicalWebUrl | 为特定内容的响应添加canonicalWebUrl字段 | /content, /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent |
| addSyndication | 如果响应中不存在canBeSyndicated字段,则添加该字段 | /content, /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent |
| linkValidationFilter | 如果存在INCLUDE_RICH_CONTENT策略,则在请求查询中添加validateLinkedResources=true | /content, /enrichedcontent, /internalcontent |
| suppressMarkup | 除非存在INCLUDE_RICH_CONTENT策略,否则从响应的bodyXML和openingXML JSON字段中移除富内容相关标记 | /content, /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent |
| mainImageFilter | 除非存在INCLUDE_RICH_CONTENT策略,否则从响应中移除mainImage字段 | /content, /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent |
| alternativeTitlesFilter | 除非存在INTERNAL_UNSTABLE策略,否则从响应中移除alternativeTitles字段 | /content, /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent |
| alternativeImagesFilter | 除非存在INTERNAL_UNSTABLE策略,否则从响应中移除alternativeImages字段 | /content, /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent |
| alternativeStandfirstsFilter | 除非存在INTERNAL_UNSTABLE策略,否则从响应中移除alternativeStandfirsts字段 | /content, /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent |
| removeCommentsFieldRegardlessOfPolicy | 从响应中移除comments字段 | /content |
| stripProvenance | 除非存在INCLUDE_PROVENANCE策略,否则从响应中移除publishReference和masterSource字段 | /content, /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent, /lists |
| stripLastModifiedDate | 除非存在INCLUDE_LAST_MODIFIED_DATE策略,否则从响应中移除lastModified字段 | /content, /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent, /lists |
| stripOpeningXml | 除非存在INTERNAL_UNSTABLE策略,否则从响应中移除openingXML字段 | /content, /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent |
| removeAccessFieldRegardlessOfPolicy | 从响应中移除accessLevel字段 | /content, /content-preview, /internalcontent-preview |
| canBeDistributedAccessFilter | 对于没有canBeDistributed=yes字段的内容,返回HTTP 403"Access denied"响应,除非存在INTERNAL_UNSTABLE策略 | /content, /enrichedcontent, /internalcontent |
| canBeSyndicatedAccessFilter | 当存在RESTRICT_NON_SYNDICATABLE_CONTENT策略时,对于没有canBeSyndicated=yes字段的内容,返回HTTP 403"Access denied"响应 | /content, /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent |
| unrolledContentFilter | 如果存在INCLUDE_RICH_CONTENT和EXPAND_RICH_CONTENT策略,则在请求查询中添加unrollContent=true | /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent |
| stripCommentsFields | 除非存在INCLUDE_COMMENTS策略,否则从响应中移除comments字段 | /content-preview, /internalcontent-preview, /enrichedcontent, /internalcontent |
| brandFilter | 如果存在FASTFT_CONTENT_ONLY策略,则在请求查询中添加forBrand=XXX;如果存在EXCLUDE_FASTFT_CONTENT策略,则添加notForBrand=XXX(其中XXX为FastFT的品牌ID) | /content/notifications |
| mediaResourceNotificationsFilter | 如果存在INTERNAL_UNSTABLE策略,则在请求查询中添加type=all;否则添加type=article | /content/notifications |
| accessLevelPropertyFilter | 除非存在INTERNAL_UNSTABLE策略,否则从响应中移除accessLevel字段 | /enrichedcontent, /internalcontent |
| accessLevelHeaderFilter | 除非存在INTERNAL_UNSTABLE策略,否则从响应中移除X-FT-Access-Level头部 | /enrichedcontent, /internalcontent |
| contentPackageFilter | 除非存在INTERNAL_UNSTABLE策略,否则从响应中移除contains和containedIn字段 | /enrichedcontent, /internalcontent |
| editorialDeskFilter | 除非存在INTERNAL_ANALYTICS策略,否则从响应中移除editorialDesk字段 | /content, /enrichedcontent, /internalcontent |
| internalAnalyticsTagsFilter | 除非存在INTERNAL_ANALYTICS策略,否则从响应中移除internalAnalyticsTags字段 | /content, /enrichedcontent, /internalcontent |
| 策略 | 描述 | 影响字段 |
|---|---|---|
| INCLUDE_RICH_CONTENT | 允许在响应中返回富内容(图像)相关字段/内容 | mainImage, bodyXML, openingXML |
| INCLUDE_IDENTIFIERS | 允许在响应中包含identifiers字段 | identifiers |
| INCLUDE_COMMENTS | 允许在响应中包含comments字段 | comments |
| INCLUDE_PROVENANCE | 允许在响应中包含内容来源信息 | publishReference, masterSource |
| INCLUDE_LAST_MODIFIED_DATE | 允许在响应中包含lastModified字段 | lastModified |
| FASTFT_CONTENT_ONLY | 仅在通知响应中包含FastFT品牌内容的事件 | * |
| EXCLUDE_FASTFT_CONTENT | 在通知响应中排除FastFT品牌内容的事件 | * |
| INTERNAL_UNSTABLE | 允许包含被视为"不稳定"的内部使用字段 | alternativeTitles, alternativeImages, alternativeStandfirsts, openingXML, accessLevel, contains, containedIn |
| INTERNAL_ANALYTICS | 允许内部分析使用字段 | editorialDesk |
| EXPAND_RICH_CONTENT | 如果与INCLUDE_RICH_CONTENT同时存在,允许在响应中展开富内容相关字段 | mainImage, embeds, alternativeImages, promotionalImage, members, leadImages, image |
| RESTRICT_NON_SYNDICATABLE_CONTENT | 如果存在,非可联合内容将返回403 Forbidden HTTP错误响应 | canBeSyndicated |
通常,头部从网关通过门面转发到Varnish层。Varnish应执行类似的头部转发,使得此处看到的头部也会被阅读器API看到。
以下头部是例外,它们都直接与底层TCP连接和数据编码相关。由于请求工作流的每个环节都是到新主机的独立连接,这些头部不会从一个TCP连接转发到下一个,但可能由本地库(如Jersey Client、Jetty)重新生成:
编译、运行测试并构建jar:
bashmvn clean install
本地运行:
bashjava -jar api-policy-component-service/target/api-policy-component-service-1.0-SNAPSHOT.jar server api-policy-component-service/config-local.yml
构建Docker镜像:
bashdocker build -t coco/api-policy-component:your-version .
运行Docker容器:
bashdocker run --rm -p 8080 -p 8081 --env "JAVA_OPTS=-Xms384m -Xmx384m -XX:+UseG1GC -server" --env "READ_ENDPOINT=localhost:8080:8080" --env "JERSEY_TIMEOUT_DURATION=***ms" coco/api-policy-component:your-version
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务