fix(upload): complete 接口幂等去重 + HEVC 转码回写占位 asset 禁止兜底新建 (#1714) (#1715)
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (push) Successful in 1s
CI/CD Pipeline / Check push changed paths (push) Successful in 4s
CI/CD Pipeline / Build Staging API Image (push) Successful in 41s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 32s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m5s
CI/CD Pipeline / Validate - Python (mypy + alembic) (push) Successful in 2m8s
AI Code Review / AI Code Review (pull_request) Failing after 2m24s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 1m51s
CI/CD Pipeline / Validate - Style (push) Successful in 2m36s
CI/CD Pipeline / Integration Tests (push) Successful in 2m33s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m52s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 5m21s
CI/CD Pipeline / Validate - Security (push) Successful in 5m43s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 3m1s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 1m20s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m32s
CI/CD Pipeline / Unit Tests (push) Successful in 8m29s
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m18s
CI/CD Pipeline / Canary Release to Production (push) Has been cancelled
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 1s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 21s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 24s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 28s
CI/CD Pipeline / CI Gate (pull_request) Successful in 17s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 262h50m20s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 262h50m38s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 262h50m40s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 262h57m36s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 262h57m48s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 262h57m49s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 262h57m54s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 262h57m56s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 262h57m37s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 262h58m2s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 262h57m37s
CI/CD Pipeline / Deploy Production (push) Failing after 263h8m9s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 263h8m10s
CI/CD Pipeline / Build Production Web Image (push) Failing after 263h8m10s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 263h12m49s
CI/CD Pipeline / Build Production API Image (push) Failing after 263h8m10s
CI/CD Pipeline / Retag skipped Staging Worker Image (push) Failing after 263h14m0s
CI/CD Pipeline / Retag skipped Staging Web Image (push) Failing after 263h14m0s
CI/CD Pipeline / Retag skipped Staging API Image (push) Failing after 263h14m1s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 262h57m58s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 262h58m1s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Failing after 262h58m1s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 262h57m58s
CI/CD Pipeline / Validate - Style (pull_request) Failing after 262h58m1s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 262h57m58s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 263h16m37s
CI/CD Pipeline / PR Build API Image (push) Failing after 263h16m38s
CI/CD Pipeline / PR Build Web Image (push) Failing after 263h16m38s
CI/CD Pipeline / Frontend Lint (push) Failing after 263h16m39s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 263h16m46s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 263h32m15s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 263h32m22s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 263h32m29s
CI/CD Pipeline / CI Gate (push) Failing after 263h42m43s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 263h24m54s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 263h25m13s
CI/CD Pipeline / Validate - Security (pull_request) Failing after 263h32m34s

Co-authored-by: xiaoxia <dev@xiaoxiajianji.com>
Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
This commit was merged in pull request #1715.
This commit is contained in:
2026-09-05 16:07:45 +08:00
committed by auto-approve-bot
parent 04b4fab131
commit 0a7ae8db4f
13 changed files with 1100 additions and 86 deletions
@@ -94,6 +94,7 @@ class AssetModel(Base):
quality_score = Column(Float, nullable=True)
uploaded_by_user_id = Column(String(36), nullable=False)
file_hash = Column(String(64), nullable=True, index=True)
client_upload_id = Column(String(64), nullable=True, index=True)
extra_meta = Column("metadata", JSON, nullable=False, default=dict)
created_at = Column(DateTime, nullable=False, default=lambda: datetime.now(timezone.utc), index=True)
updated_at = Column(DateTime, nullable=False, default=lambda: datetime.now(timezone.utc))
@@ -244,6 +245,7 @@ class IngestJobModel(Base):
error_message = Column(Text, nullable=False, default="")
result_asset_id = Column(String(36), nullable=False, default="")
file_hash = Column(String(64), nullable=True, index=True)
asset_id = Column(String(36), nullable=False, default="", index=True)
created_at = Column(DateTime, nullable=False, default=lambda: datetime.now(timezone.utc))
updated_at = Column(DateTime, nullable=False, default=lambda: datetime.now(timezone.utc))