package comm import "testing" // 2026-09-14 作用域归一把 svc_config 全部分配到各应用、全局行(app_name='')不再产生之后, // 后台传固件这条**不带 X-App-Id** 的路径就失去了兜底,一上传就报「未配置阿里云 OSS」, // 而配置明明填得好好的。兜底的判据是「所有启用的配置是否指向同一个桶」。 func ossRow(app, ep, bucket, ak string) *ThirdSvcConfig { return &ThirdSvcConfig{ AppName: app, Id: "storage_aliyun_oss", Provider: AliyunOSSProvider, Enable: true, Fields: []SvcField{ {Key: "endpoint", DefValue: ep}, {Key: "bucket", DefValue: bucket}, {Key: "access_key_id", DefValue: ak}, }, } } // fingerprint 的行为通过这组用例间接固定:同桶可兜底、异桶必须报错。 func TestOSSFingerprintAgreement(t *testing.T) { a := ossRow("EAIMAR", "https://oss-cn-shanghai.aliyuncs.com", "ymaioss", "AK1") b := ossRow("deepGlass", "https://oss-cn-shanghai.aliyuncs.com", "ymaioss", "AK1") c := ossRow("other", "https://oss-cn-shanghai.aliyuncs.com", "另一个桶", "AK1") if ossFingerprint(a, "") != ossFingerprint(b, "") { t.Fatal("同一套 endpoint/bucket/ak 必须判为一致,否则线上两个应用配同一个桶也会被判成分歧") } if ossFingerprint(a, "") == ossFingerprint(c, "") { t.Fatal("桶不同必须判为分歧——随手挑一个会把文件传进别人的桶里") } }