部署侧接线阿里云抠图凭证,避免抠图兜底静默塌成两级
aliyun_matting_enabled 默认 true,但 env 模板/校验器从未提供 GENARRATIVE_ALIYUN_MATTING_ACCESS_KEY_*,标准部署里 build_matting_client 因缺 key 返回 None,BgFilter 失败直接本地去背,与三级兜底设计口径不符。 - 两份 api-server.env.example 补 matting 段(enabled/endpoint/AccessKey 占位/timeout) - check-api-server-env.mjs 增可选告警:enabled 但缺 AccessKey 时提示兜底层被跳过 - 开发运维文档补记该层需配 AccessKey 才生效 密钥与 OSS/SMS/token 一致,只留空占位由运维填,不写进 provision/deploy 脚本。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -47,6 +47,31 @@ if (typoKeys.length > 0) {
|
||||
);
|
||||
}
|
||||
|
||||
// 阿里云通用抠图兜底层:默认 enabled=true,但 AccessKey 缺失时会被静默跳过,
|
||||
// BgFilter 失败直接本地去背(质量下降)。属可选降级项,只告警不阻断部署。
|
||||
console.log('[api-server-env] 抠图兜底(阿里云通用抠图)配置检查');
|
||||
const mattingEnabled = env.GENARRATIVE_ALIYUN_MATTING_ENABLED !== 'false';
|
||||
const mattingKeyPresent =
|
||||
hasValue(env.GENARRATIVE_ALIYUN_MATTING_ACCESS_KEY_ID) ||
|
||||
hasValue(env.ALIBABA_CLOUD_ACCESS_KEY_ID);
|
||||
const mattingSecretPresent =
|
||||
hasValue(env.GENARRATIVE_ALIYUN_MATTING_ACCESS_KEY_SECRET) ||
|
||||
hasValue(env.ALIBABA_CLOUD_ACCESS_KEY_SECRET);
|
||||
printStatus(
|
||||
'GENARRATIVE_ALIYUN_MATTING_ACCESS_KEY_ID / ALIBABA_CLOUD_ACCESS_KEY_ID',
|
||||
mattingKeyPresent,
|
||||
);
|
||||
printStatus(
|
||||
'GENARRATIVE_ALIYUN_MATTING_ACCESS_KEY_SECRET / ALIBABA_CLOUD_ACCESS_KEY_SECRET',
|
||||
mattingSecretPresent,
|
||||
);
|
||||
if (mattingEnabled && !(mattingKeyPresent && mattingSecretPresent)) {
|
||||
console.warn(
|
||||
'[api-server-env] 警告:GENARRATIVE_ALIYUN_MATTING_ENABLED 未关闭但缺少 AccessKey,' +
|
||||
'阿里云抠图兜底层将被跳过,BgFilter 失败后直接本地去背(质量下降)。',
|
||||
);
|
||||
}
|
||||
|
||||
if (missing.length > 0) {
|
||||
console.error(`[api-server-env] 缺少:${missing.join(', ')}`);
|
||||
process.exit(1);
|
||||
|
||||
Reference in New Issue
Block a user