feat: add contract template v3 api and legacy oss migration

This commit is contained in:
wren
2026-05-19 18:38:17 +08:00
parent afaba4dd99
commit 16e8668150
11 changed files with 1241 additions and 0 deletions
@@ -52,6 +52,24 @@ class OssPathUtils:
prefix = f"{Region}/" if Region else ""
return f"{prefix}rules/{RuleType}/{VersionNo}/validation_report.json"
@staticmethod
def BuildContractTemplateKey(
CategoryName: str,
TemplateCode: str,
FileRole: str,
FileName: str,
) -> str:
"""生成合同模板 object key。"""
ext = Path(FileName).suffix or ""
safe_category = OssPathUtils.BuildSafeFileStem(CategoryName or "uncategorized")
safe_template_code = OssPathUtils.BuildSafeFileStem(TemplateCode or "template")
safe_stem = OssPathUtils.BuildSafeFileStem(FileName)
safe_role = OssPathUtils.BuildSafeFileStem(FileRole or "file")
return (
f"contract-templates/{safe_category}/{safe_template_code}/"
f"{safe_role}__{safe_stem}{ext}"
)
@staticmethod
def BuildSafeFileStem(FileName: str) -> str:
"""生成适合放进 object key 的可读文件名主体。"""