浅念
|
eb8983a06c
|
feat(storage,g1): real-OSS support and G1 smoke — gate CLOSED
G1 (skipped at P1 for lack of credentials) executed 2026-09-21 against the
user-provided bucket live-album @ oss-cn-beijing:
Raw-SDK smoke (scripts/g1-oss-smoke.mjs, creds via runtime env only):
- HeadBucket / presign PUT direct upload / head byte+type verify /
presign GET round-trip / copy staging→originals / idempotent replay /
DeleteObject cleanup — all pass.
- S3-compat lifecycle query unsupported → console manual check remains the
only open G1 sub-item (need: confirm no lifecycle rule hits photo-live/).
Adapter-level (production path, createStorageFromEnv → real OSS):
- presignPut+PUT 200, head verify, presignGet round-trip equal,
copyIfAbsent idempotent (created:true→false, same etag),
forbid-overwrite guard throws UPLOAD_VERIFY_FAILED — all pass.
Findings locked in:
- Addressing: OSS S3-compat requires virtual-host style with BASE endpoint
(path-style → 403 signature mismatch). StoragePort adapter gains optional
MinioStorageConfig.forcePathStyle + S3_FORCE_PATH_STYLE env (default true
keeps local MinIO behavior); required-field validation fixed to string
fields only (boolean false ≠ missing).
- .env.production.example-cn S3 section updated to the confirmed shape
(beijing endpoint/region, virtual-host, bucket live-album).
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-21 10:16:33 +08:00 |
|