fix(freedoc): persist uploaded file metadata and text body server-side
上传文档跨端不可访问修复(ISSUE-20260927-upload-doc-cross-device): - 迁移 00076:freeform_documents 增加 source_filename/mime/size_bytes/asset_id - freedoc:Create/Get/List 读写源文件元数据,负值拒绝 - 前端:注册前全部附件先登记 CAS 并预读文本正文;文本正文嵌入注册 markdown;跨端恢复 sourceType/fileMeta 路由回文件预览器 - 大小显示 formatFileSize(<512B 不再显示 0 KB) - E2E 新增 FS-UPLOAD-02 跨浏览器上下文可访问性用例 回归:go vet/arch-check/go test -short(隔离 PG)+ web npm test/build 全绿; 存量无元数据旧文档不可恢复(重新上传即可)。
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
-- +goose Up
|
||||
-- 上传附件注册 freeform 文档时持久化源文件元数据(原仅存于浏览器 localStorage/IndexedDB,
|
||||
-- 换设备/清存储/共享给其他成员后无法恢复文件预览,正文退化为注册占位模板)。
|
||||
-- source_asset_id 软关联 CAS 项目资产(storage_blobs/file_references,见 internal/storage/cas.go),
|
||||
-- 不加 FK:资产去重/引用计数生命周期独立于文档,删资产不级联删文档。
|
||||
|
||||
ALTER TABLE freeform_documents
|
||||
ADD COLUMN IF NOT EXISTS source_filename TEXT NOT NULL DEFAULT '',
|
||||
ADD COLUMN IF NOT EXISTS source_mime_type TEXT NOT NULL DEFAULT '',
|
||||
ADD COLUMN IF NOT EXISTS source_size_bytes BIGINT NOT NULL DEFAULT 0,
|
||||
ADD COLUMN IF NOT EXISTS source_asset_id BIGINT;
|
||||
|
||||
-- +goose Down
|
||||
ALTER TABLE freeform_documents
|
||||
DROP COLUMN IF EXISTS source_asset_id,
|
||||
DROP COLUMN IF EXISTS source_size_bytes,
|
||||
DROP COLUMN IF EXISTS source_mime_type,
|
||||
DROP COLUMN IF EXISTS source_filename;
|
||||
Reference in New Issue
Block a user