跳到主要内容

文件

如何根据文件名定位文件所在工作表记录

以对象存储中保存的文件名为 bR2HbXfudAfo9JafdveE4K0C9J2g519Gae3d4I84820k8a9Bee3t5I914q5J4p6e.pdf 示例

到 MongoDB mdattachment 库中查询对应的 docid

> use mdattachment
> db.attachment.find({"name": "52a9dF0c71fscg6P9Lahfc5B41d4c0dv5FasdM5a5LaQdoaE9V1x64aK04en3Ydu.pdf"}).pretty()
{
"_id" : ObjectId("6413d880840db440e5f5a7be"),
"docid" : "a234f6ca-6bf2-4491-9261-e24758376b91",
"fid" : "a234f6ca-6bf2-4491-9261-e24758376b91",
"server" : "https://hap.domain.com/file/mdoc/",
"oFilename" : "APaaS测试文件",
"path" : "doc/20230317/",
"name" : "52a9dF0c71fscg6P9Lahfc5B41d4c0dv5FasdM5a5LaQdoaE9V1x64aK04en3Ydu.pdf",
......
}
  • 获取到 docida234f6ca-6bf2-4491-9261-e24758376b91

  • 此时的 oFilename 也就是保存在工作表记录中的实际文件名称

根据 docid 在关系表里查询出控件 ID

> db.attachmentrelation.find({"docid" : "a234f6ca-6bf2-4491-9261-e24758376b91"}).pretty()
{
"_id" : ObjectId("6448eb672d71e11d04aae297"),
"docid" : "a234f6ca-6bf2-4491-9261-e24758376b91",
"fid" : "a234f6ca-6bf2-4491-9261-e24758376b91",
"fType" : 9,
"pids" : [
"eaf823e5-4205-44fd-8521-109d3ec29a92"
],
"ctime" : ISODate("2023-04-26T09:14:15.289Z"),
"sourceid" : "bac739dc-9f8f-4ea5-a1f8-bdea56d27b81",
"commentid" : "6448eb5c12053cf665be2131"
}
  • 如果 fType = 9,那么 commentid 就是控件 id,sourceid 是记录 ID
  • 获取到的控件 ID commentid6448eb5c12053cf665be2131
  • 获取到的记录 IDsourceidbac739dc-9f8f-4ea5-a1f8-bdea56d27b81
    • sourceid 对应 mdwsrows 库中对应工作表的 rowid
    • commentid 对应 mdworksheetwscontrols 表的 cid

根据 commentidmdworksheetwscontrols 表中查询工作表 ID

> use mdworksheet
switched to db mdworksheet
> db.wscontrols.find({cid:"6448eb5c12053cf665be2131"}).pretty()
{
"_id" : ObjectId("6448eb5c12053cf665be2136"),
"cid" : "6448eb5c12053cf665be2131",
"wsid" : "6448eb5c12053cf665be212e",
......
}
  • wsid 就是工作表 ID,得到工作表 ID 为 6448eb5c12053cf665be212e

浏览器中访问:系统地址/worksheet/工作表ID,即可进入所查询文件所在的工作表

浏览器中访问:系统地址/worksheet/工作表ID/row/记录ID,即可进入所查询文件所在的工作表记录

如何开启文件物理删除

默认情况下,文件删除后不会从对象存储中物理删除。若需要清理已删除文件,可新增以下环境变量:

环境变量说明默认值
ENV_FILE_DELETE_ENABLE_PHYSICAL是否开启文件物理删除false
ENV_FILE_DELETE_BEFORE_DAYS仅在 ENV_FILE_DELETE_ENABLE_PHYSICALtrue 时生效,物理删除多少天前的文件7
ENV_FILE_DELETE_TASK_CRON仅在 ENV_FILE_DELETE_ENABLE_PHYSICALtrue 时生效,定时任务执行时间0 0 1 * * ?(每天凌晨 1 点)

开启“物理删除”配置后,在以下场景中删除文件时,系统会进一步执行物理删除操作:

状态场景
✅ 支持打开数据详情页,点击附件字段删除附件
✅ 支持手动删除单条数据并清空回收站
✅ 支持手动删除本页数据并清空回收站
❌ 不支持在列表选中本页,选择编辑,批量清除附件字段
❌ 不支持在列表选中所有数据,选择编辑,批量清除附件字段
✅ 支持工作流更新节点更新单条数据的附件字段,并选择清空
✅ 支持工作流更新节点更新多条数据的附件字段,并选择清空
✅ 支持API 接口通过更新节点更新附件,且选择覆盖数据并清除旧附件
❌ 不支持通过 API 删除单条数据
❌ 不支持通过 API 删除多条数据
❌ 不支持手动删除全部数据并清空回收站
❌ 不支持工作流删除单条数据,并选择不放到回收站
❌ 不支持工作流删除多条数据,并选择不放到回收站
❌ 不支持直接删除整个工作表
❌ 不支持直接删除整个应用

标记为“不支持”的场景因批量删除数据时无法跟踪附件状态,无法进一步删除对应的附件。