Protect upload cleanup and atomic completion paths, add durable media worker leases and brand asset validation, and introduce verified migration/bootstrap/deployment gates.
5.4 KiB
生产存储桶接入信息
更新时间:2026-07-09 本文记录当前素材平台的 MinIO / S3 / uploads 存储事实。
1. 当前结论
- 新素材预览 / 展示文件:写入生产 MinIO 新桶路径,公开 URL 统一为
https://s3.jiansun.vip/gongxiangpan/由壹点AI/public-display/...。 - 源文件 / 下载型文件:写入生产服务器独立 ZFS uploads 数据集:
/mnt/PoolOne/youyidian-uploads。历史路径/mnt/PoolOne/apps/youyidian-3d/uploads仅作人工明确的兼容选项,不再是默认值。 - 旧
1080p.hk桶:只用于极少数老素材兼容,不作为新素材写入目标。 /gongxiangpan/uploads/是历史混合区,不再作为新展示资源的默认路径。
2. 生产 MinIO 信息
- 存储服务:
MinIO - 生产服务器:
192.168.58.20 - API 端口:
9000 - 控制台端口:
9001 - 存储服务容器:
minio - 线上应用容器:
youyidian-3d-material
应用实际接入参数:
S3_ENDPOINT=http://192.168.58.20:9000
S3_BUCKET=gongxiangpan
S3_REGION=us-east-1
S3_PUBLIC_DOMAIN=https://s3.jiansun.vip/gongxiangpan
S3_FILE_PATH=由壹点AI/
代码固定行为:
- S3 客户端使用 path-style 访问,代码里固定
forcePathStyle: true。 - 上传对象默认设置
public-readACL,代码里固定处理。 S3_PUBLIC_DOMAIN用来拼出公开访问地址。
下面这些不是当前代码必须读取的部署变量,不要再作为新项目接入必填项传播:
S3_ENABLE_PATH_STYLES3_SET_ACLS3_PREVIEW_URL_EXPIRE_IN
3. 对象路径规则
3.1 新预览 / 展示资源
正式路径:
https://s3.jiansun.vip/gongxiangpan/由壹点AI/public-display/...
常见前缀:
由壹点AI/public-display/materials/...
由壹点AI/public-display/task-detail/...
由壹点AI/public-display/white-background/...
由壹点AI/public-display/certificate-report/...
这些资源用于页面展示、AI 平台预览、钉钉返回地址和外部接口展示直链。
3.2 默认 S3 业务前缀
生产环境仍可能存在默认业务前缀:
由壹点AI/
它是当前生产环境的默认业务前缀。新素材展示图应落在 由壹点AI/public-display/...,不要写入旧桶。
4. uploads 目录规则
生产 uploads 目录:
/mnt/PoolOne/youyidian-uploads
容器内路径:
/app/uploads
当前会落在这里的内容包括:
- 素材源文件
- ZIP / PSD / PDF 等下载型文件
- 视频源文件
- 音频源文件
- 分片上传合并后的最终文件
- 上传过程中的临时文件
对外访问时,代码会根据场景返回:
- 内网:可能返回
/uploads/...或内网 MinIO / 生产机地址。 - 外网:通常通过
/api/uploads/...或带 token 的下载接口流式返回。
不要把 uploads 理解成“少量视频临时区”。它是当前生产源文件和下载型文件的核心落点。
5. 历史素材正式导入要求
历史素材导入有一个特殊约束:执行机要能读取历史素材源目录,同时下载型文件必须最终落到生产 uploads。
当前天蓝盘批量导入的标准做法:
- Windows 维护机读取
Z:\...源素材。 - 预览图上传到新桶
gongxiangpan的由壹点AI/public-display/...。 - ZIP / PSD / 源文件先在本机生成,再通过远程同步写入生产机
/mnt/PoolOne/youyidian-uploads,并校验远程文件大小。
正式 --apply 如果在 Windows 上连接生产库,必须同时配置:
HISTORY_IMPORT_REMOTE_UPLOADS_HOST=prod
HISTORY_IMPORT_REMOTE_UPLOADS_DIR=/mnt/PoolOne/youyidian-uploads
没有远程 uploads 同步时,脚本必须阻止正式导入。否则会把数据库写到生产库,但 ZIP / PSD 留在本机 uploads,线上下载会 404。
6. 历史兼容
6.1 旧 1080p.hk 桶
s3.1080p.hk/jsxiangche 只保留给极少数老素材兼容。新素材、批量新录入素材、后续上传素材都不应继续写入旧桶。
6.2 旧资源域名
s3.yydd.ai 不再作为默认对接口径,只用于识别历史链接。
6.3 品牌资源迁移门禁
存储切换不能只核对素材预览。每次迁移或域名切换必须同时核对:
SystemSettings.headerLogoUrl与loginLogoUrl- 首页 Header、登录页、注册页、完善资料页
/api/favicon- 后台“恢复默认”值与 Prisma 默认值
- 管理员 GET → 不修改 Logo → PUT 往返不会把
/api/proxy-media?...写回数据库
上述配置只能使用镜像内 /brand/... 或当前 https://s3.jiansun.vip/gongxiangpan/...;旧域名仅允许历史素材只读兼容。
6.4 历史混合区
/gongxiangpan/uploads/ 保留历史兼容,不再作为新展示图默认路径。
7. 只读核对命令
核对应用环境变量:
ssh root@192.168.58.20 "docker exec youyidian-3d-material sh -lc 'env | grep -E \"^(S3_|UPLOAD_DIR|APP_PUBLIC_URL|NEXTAUTH_URL)\"'"
核对 MinIO 挂载:
ssh root@192.168.58.20 "docker inspect minio --format '{{json .Mounts}}'"
核对 uploads 目录:
ssh root@192.168.58.20 "ls -la /mnt/PoolOne/youyidian-uploads | head -20"
核对资源域名解析:
Resolve-DnsName s3.jiansun.vip
当前资源域名应解析到正式入口 218.93.9.38,再经入口机 nginx / FRP 回源到 192.168.58.20:9000。103.118.245.6 是历史入口,不再作为当前默认排障入口。