Skip to content

feat(oss): MinIO 三桶分离,文档上传路由至 RAW 桶 (LINK-215)#140

Merged
Fang0415 merged 2 commits into
devfrom
feature/link-215-bucket-split
Jun 28, 2026
Merged

feat(oss): MinIO 三桶分离,文档上传路由至 RAW 桶 (LINK-215)#140
Fang0415 merged 2 commits into
devfrom
feature/link-215-bucket-split

Conversation

@Fang0415

Copy link
Copy Markdown
Contributor

背景

LINK-215:用户上传的原文件(PDF、DOCX 等)和 Python 解析产物(Markdown、图片)混存于同一个 MinIO 桶 tolink-rag-docs,给权限隔离、生命周期管理和数据追溯带来困难。

改动内容

三桶模型(与 Python 端 LinkRag 同步对齐)

名称 职责
原文件桶 RAW tolink-rag-raw Java 写入用户上传源文件,Python 只读下载
解析产物桶 DOCS tolink-rag-docs Python 写入 Markdown + 图片,Java 只读
公开桶 PUBLIC tolink-public 博客、反馈附件,匿名可读

文件变更

  • OssSavePlaceEnum:新增 RAW 枚举值,Javadoc 描述三桶职责
  • OssProperties.Minio:新增 rawBucketName 字段(getter/setter)
  • MinioFileService
    • resolveBucketName() 增加 RAW 分支
    • returnsObjectKeyOnly() 同时覆盖 RAW(不生成公开 URL)
    • validateBucketNames() 改为对三桶名称做去重校验
  • OssUploadRuleRegistry"document" 规则由 PRIVATE 改为 RAW
  • DocumentUploadAsyncExecutor:文档上传目标由 PRIVATE 改为 RAW
  • DocumentFileServiceImpl:两处 getBucketName(PRIVATE) 改为 getBucketName(RAW)
  • DocumentParseTaskServiceImplMD_BUCKET 常量由错误值 "rag-md" 修正为 "tolink-rag-docs"
  • application-dev.yml(gitignore,本地配置):已添加 raw-bucket-name: tolink-rag-raw

测试

  • MinioFileServiceTest:更新重复桶名错误消息断言;新增 RAW 桶名分辨率断言
  • DocumentParseTaskServiceImplTest:无需修改(重试路径的 md_bucket 来自 DocumentParsedLog 历史数据,不依赖常量)

关联

Fang0415 added 2 commits June 28, 2026 08:20
三桶模型:tolink-public(公开)/ tolink-rag-raw(源文件)/ tolink-rag-docs(解析产物)。

- OssSavePlaceEnum 新增 RAW 值,Javadoc 描述三桶职责
- OssProperties.Minio 新增 rawBucketName 字段(getter/setter)
- MinioFileService.resolveBucketName 增加 RAW 分支;returnsObjectKeyOnly
  同时覆盖 RAW;validateBucketNames 改为全三桶去重校验
- OssUploadRuleRegistry "document" 规则由 PRIVATE 改为 RAW
- DocumentUploadAsyncExecutor.runUpload 上传目标改为 RAW
- DocumentFileServiceImpl.resolveTargetRecord 两处 getBucketName 改为 RAW
- DocumentParseTaskServiceImpl.MD_BUCKET 修正为 "tolink-rag-docs"(原值 "rag-md" 有误)
- MinioFileServiceTest 更新错误消息断言、新增 RAW bucket 分辨率断言
PrivateFileResolver.getPrivateFile 硬编码 PRIVATE 桶,但文档原文件
已改存入 RAW 桶,导致 openOriginalFile 下载时找不到对象。

- PrivateFileResolver 新增带 place 参数的重载,原无参方法委托调用
- DocumentFileServiceImpl.openOriginalFile 改传 OssSavePlaceEnum.RAW
@Fang0415 Fang0415 merged commit 8dd822e into dev Jun 28, 2026
1 check passed
@jixua jixua mentioned this pull request Jun 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant