gongxiangp2/docs/生产存储桶接入信息.md
2026-05-07 16:37:22 +08:00

5.4 KiB
Raw Blame History

生产存储桶接入信息

适用范围:本文记录当前线上 MinIO(对象存储) / S3(对象存储兼容接口) 的已确认接入信息,供其它项目接入同一个生产存储桶时参考。

最后核对时间:2026-04-14 核对方式:生产服务器只读核对 + 生产应用容器环境变量核对 + 宿主机挂载路径核对

1. 已确认的生产接入信息

1.1 存储服务

  • 存储服务:MinIO(对象存储服务)
  • 生产服务器:192.168.58.20
  • API 端口:9000
  • 控制台端口:9001
  • 线上应用容器:youyidian-3d-material
  • 存储服务容器:minio

1.2 S3 兼容接入参数

  • S3_ENDPOINT(对象存储接口地址):http://192.168.58.20:9000
  • S3_BUCKET(桶名):gongxiangpan
  • S3_REGION(区域):us-east-1
  • S3_ENABLE_PATH_STYLE(路径风格访问):1
  • S3_SET_ACL(上传后写 public-read):1
  • S3_PREVIEW_URL_EXPIRE_IN(预览链接过期秒数):7200

1.3 对外访问域名

  • S3_PUBLIC_DOMAIN(公开访问域名):https://s3.jiansun.vip/gongxiangpan

当前项目最终对象 URL(访问地址)规则:

https://s3.jiansun.vip/gongxiangpan/<前缀><文件名>

例如当前项目使用的前缀是:

  • S3_FILE_PATH(对象前缀):由壹点AI/

所以当前项目上传出来的对象通常长这样:

https://s3.jiansun.vip/gongxiangpan/由壹点AI/<文件名>

2. 宿主机真实挂载路径

2.1 MinIO 数据目录

  • 宿主机数据路径:/mnt/tank/apps/minio/data
  • 容器内路径:/data

2.2 MinIO 配置目录

  • 宿主机配置路径:/mnt/tank/apps/minio/config
  • 容器内路径:/root/.minio

2.3 当前项目本地上传目录

这个不是存储桶,但很多视频源文件会先落这里:

  • 宿主机路径:/mnt/PoolOne/apps/youyidian-3d/uploads
  • 容器内路径:/app/uploads

3. 新项目接入时建议怎么用

3.1 可以共用什么

新项目如果要共用这一个生产桶,可以共用这些固定信息:

  • S3_ENDPOINT
  • S3_BUCKET
  • S3_REGION
  • S3_PUBLIC_DOMAIN
  • path-style(路径风格)

3.2 不建议直接共用什么

下面两项不建议直接原样复用:

  • 当前项目的 S3_FILE_PATH(对象前缀)
  • 当前项目正在使用的长期访问密钥

原因很直接:

  1. 如果多个项目共用同一个前缀,文件名一旦撞上,后面排查和清理会很乱。
  2. 如果多个项目长期共用同一套生产密钥,任何一个项目泄露,整个生产桶都会一起暴露。

3.3 推荐接法

新项目建议这样配:

S3_ENDPOINT=http://192.168.58.20:9000
S3_BUCKET=gongxiangpan
S3_REGION=us-east-1
S3_ENABLE_PATH_STYLE=1
S3_PUBLIC_DOMAIN=https://s3.jiansun.vip/gongxiangpan
S3_FILE_PATH=<新项目自己的前缀>/

例如:

S3_FILE_PATH=新项目名/

或者:

S3_FILE_PATH=业务线A/新项目名/

4. 密钥处理建议

风险等级:高

当前生产环境里确实存在可用的 Access Key(访问密钥) / Secret Key(私钥),但本文不直接记录明文。

不建议:

  • 直接把 MinIO Root(管理员根账号) 给业务项目使用
  • 让多个项目长期共用同一套生产访问密钥

建议:

  1. 给每个新项目单独发一套对象存储访问密钥
  2. 至少给每个项目分独立前缀
  3. 如果条件允许,进一步按项目拆权限策略

5. 如果必须核对线上实际配置

5.1 看当前应用实际在用的 S3 配置

ssh root@192.168.58.20 "docker exec youyidian-3d-material sh -lc 'env'"

然后重点看:

  • S3_ENDPOINT
  • S3_BUCKET
  • S3_REGION
  • S3_PUBLIC_DOMAIN
  • S3_FILE_PATH
  • S3_ACCESS_KEY_ID
  • S3_SECRET_ACCESS_KEY

5.2 看 MinIO 挂载

ssh root@192.168.58.20 "docker inspect minio --format '{{json .Mounts}}'"

5.3 看 MinIO 本机配置文件

ssh root@192.168.58.20 "sed -n '1,200p' /mnt/tank/apps/minio/config/minio.env"

6. 当前结论

  • 生产对象存储实例可以复用
  • 生产桶名已经确认是 gongxiangpan
  • 公开访问域名已经确认是 https://s3.jiansun.vip/gongxiangpan
  • 当前项目对象前缀是 由壹点AI/
  • 其它项目如果接入,建议“共用桶,不共用前缀,不共用长期密钥”

7. 另一个项目临时接入说明

已确认另一个项目使用下面这套固定配置:

  • S3_ENDPOINT=http://192.168.58.20:9000
  • S3_BUCKET=gongxiangpan
  • S3_REGION=us-east-1
  • S3_ENABLE_PATH_STYLE=1
  • S3_PUBLIC_DOMAIN=https://s3.jiansun.vip/gongxiangpan
  • S3_FILE_PATH=3danzhuang/furniture-3d-system/

风险等级:高

说明:

  • 另一个项目当前要求的是“先能接上生产桶”
  • 目前本项目已经掌握现有生产项目使用中的对象存储访问密钥
  • 但把明文密钥直接写进仓库文档不安全,后续极易被提交扩散

因此实际可用的临时接入环境变量,已单独写入本地忽略文件:

这份文件可直接给另一个项目参考或落到新服务器。

不建议长期这样复用当前生产项目密钥。更稳的最终方案仍然是:

  1. 给另一个项目单独创建一套 Access Key / Secret Key(访问密钥 / 密钥)
  2. 继续保留它自己的对象前缀 3danzhuang/furniture-3d-system/