# GBS 平台文件存储(OSS)配置汇总

> **生成时间**：2026-06-30 10:05
> **数据来源**：Nacos（jjb-dragon 命名空间）+ MySQL `jjb-saas-attachment` 库
> **结论**：平台文件存储**全部使用阿里云 OSS**，无 MinIO 在用

---

## 一、核心结论

| 项目 | 值 |
|------|-----|
| **存储后端** | 阿里云 OSS（Aliyun Object Storage Service） |
| **支持的存储类型** | `ALIYUN_OSS`（普通文件 70 个渠道）、`ALIYUN_VIDEO_OSS`（视频点播 28 个渠道） |
| **存储 Region** | 华东1（杭州）`oss-cn-hangzhou` |
| **Bucket** | `test-dragon-yf-pub`（所有租户共用） |
| **总容量** | 平台级 4 TB（4398046511104 字节），单租户默认 100 GB |
| **已用容量** | 平台级 3.09 TB（3096225104031 字节 / ≈ 2.81 TiB） |
| **Nacos 默认存储策略** | `ALIYUN_OSS` |
| **MinIO 状态** | 容器在运行，但**仅作历史残留**，无任何业务使用 |

---

## 二、Nacos 默认存储策略

Nacos 命名空间 `jjb-dragon` → 配置 `jjb-saas-attachment.yml`：

```yaml
attachment:
  # 默认存储空间  支持MINIO、ALIYUN_OSS
  storage-policies: ALIYUN_OSS          # ← 当前使用阿里云 OSS
  file-view-url: ${common.gateway.network.http.external}/fileview/onlinePreview
  expiration: 3600
  default-init-capacity: 102400         # 默认 100 GB

minio:
  inter:
    replace-enum: true
    url: http://192.168.1.117:9001      # ← 旧地址，无效（已弃用）
```

> ⚠️ 注释里仍写着"支持 MINIO、ALIYUN_OSS"，但 `minio.inter.url` 指向已不存在的旧环境 `192.168.1.117:9001`。当前业务完全走 OSS，不影响上传。

---

## 三、阿里云 OSS 凭证（2 套 — 文件/视频）

| 用途 | AccessKeyId | AccessKeySecret | Bucket | Region | 内/外网 Endpoint |
|------|-------------|-----------------|--------|--------|------------------|
| **ALIYUN_OSS**（文件） | `LTAI5tFerUgBCLEbXtinDD6d` | `XyGVNV2RvW8U3ceoJDiy9A9oLvCGYp` | `test-dragon-yf-pub` | oss-cn-hangzhou | `https://test-dragon-yf-pub.oss-cn-hangzhou.aliyuncs.com` |
| **ALIYUN_VIDEO_OSS**（视频） | `LTAI5tDAMFkin5tavp4thfaG` | `XoBYTtIgeHOiz3udiP5gm0rcdRWp25` | `test-dragon-yf-pub` | oss-cn-shanghai（regionId） | 同上 |

**URL 模板**（来自 `attachment_tenant_channel.channel_config` JSON）：

```json
{
  "rootDir": "jjb",
  "endpoint": "oss-cn-hangzhou.aliyuncs.com",
  "bucketName": "test-dragon-yf-pub",
  "expiration": null,
  "accessKeyId": "LTAI5tFerUgBCLEbXtinDD6d",
  "accessKeySecret": "XyGVNV2RvW8U3ceoJDiy9A9oLvCGYp",
  "innerNetBaseUrl": "https://test-dragon-yf-pub.oss-cn-hangzhou.aliyuncs.com",
  "outerNetBaseUrl": "https://test-dragon-yf-pub.oss-cn-hangzhou.aliyuncs.com",
  "innerFileViewBaseUrl": "https://test-dragon-yf-pub.oss-cn-hangzhou.aliyuncs.com",
  "outerFileViewBaseUrl": "https://test-dragon-yf-pub.oss-cn-hangzhou.aliyuncs.com"
}
```

> ⚠️ 视频 OSS 凭证中 `regionId: cn-shanghai` 与 `endpoint: oss-cn-hangzhou` 不一致（**疑似配置错配**），但实际请求走 endpoint，杭州 bucket 可正常访问。如切换视频点播需注意。

---

## 四、数据库表结构

### 4.1 `attachment_tenant_channel`（租户存储渠道绑定表）
| 字段 | 说明 |
|------|------|
| `id` | 主键 |
| `channel_owner_enum` | 渠道所属（PLATFORM / 自定义） |
| `channel_type_enum` | 渠道类型（ALIYUN_OSS / ALIYUN_VIDEO_OSS / MinIO 等） |
| `channel_name` | 渠道名称 |
| `channel_config` | 渠道配置 JSON（含 endpoint/bucket/accessKey 等） |
| `total_storage_size` | 总容量（字节） |
| `default_enum` | 是否默认渠道 |
| `tenant_id` / `org_id` | 租户/机构 |

**数据规模**：98 条记录（70 个 ALIYUN_OSS + 28 个 ALIYUN_VIDEO_OSS）

### 4.2 `oss_region_endpoint`（OSS 区域映射表）
预置 16 个阿里云 OSS Region（杭州/上海/北京/深圳/香港/美国等），用于 endpoint 路由。

| 关键 Region | 外网 endpoint | 内网 endpoint |
|-------------|---------------|---------------|
| 华东1（杭州） | oss-cn-hangzhou.aliyuncs.com | oss-cn-hangzhou-internal.aliyuncs.com |
| 华东2（上海） | oss-cn-shanghai.aliyuncs.com | oss-cn-shanghai-internal.aliyuncs.com |
| 华北2（北京） | oss-cn-beijing.aliyuncs.com | oss-cn-beijing-internal.aliyuncs.com |
| 华南1（深圳） | oss-cn-shenzhen.aliyuncs.com | oss-cn-shenzhen-internal.aliyuncs.com |
| 中国香港 | oss-cn-hongkong.aliyuncs.com | oss-cn-hongkong-internal.aliyuncs.com |

### 4.3 `attachment_file`（文件元数据表）
| 关键字段 | 说明 |
|----------|------|
| `storage_type_enum` | 存储类型（本地/阿里OSS/本地minio等） |
| `bucket_name` | bucket 名（如 `test-dragon-yf-pub`） |
| `url` | 上传文件 URL |
| `preview_url` / `download_url` | 预览/下载地址 |
| `status_enum` / `upload_status_enum` | 状态/上传状态 |
| `file_size` / `name` / `ext` | 文件属性 |
| `channel_id` | 渠道 id（关联 `attachment_tenant_channel`） |

### 4.4 `attachment_storage`（存储用量表）
| 字段 | 说明 |
|------|------|
| `tenant_id` | 租户 |
| `total_storage_size` | 总配额（字节，默认 107374182400 = 100 GB） |
| `occupied_storage_size` | 已用容量（字节） |

**平台总和**：4 TB 配额，3.09 TB 已用（**73% 使用率**）

---

## 五、最近文件上传样本

```
id: 2065350515959717890
name: 48afad885c233d3cf82fa3b779002554
storage_type_enum: NULL
bucket_name: test-dragon-yf-pub
file_size: 410715
create_time: 2026-06-12 16:28:30
```

> 注意：`storage_type_enum` 字段为 NULL（schema 里没存具体值），但 `bucket_name` = `test-dragon-yf-pub` 表明所有文件都上传到了阿里云 OSS。

---

## 六、MinIO 容器状态（仅作残留）

```
容器名: minio
状态: Up 13 days
端口: 0.0.0.0:9000-9001 (API/Console)
数据目录: /data
内容: .minio.sys/  jjb-attachment/  (jjb-attachment 桶内只有 test.txt)
```

**结论**：MinIO 容器仍在运行（端口 9000/9001 暴露在 master 节点），但桶内无业务数据，**仅作早期本地化部署残留**。Nacos 配置文件 `minio.inter.url` 指向的 `192.168.1.117:9001` 早已不可达（应为 192.168.20.100:9000），但因为默认策略是 ALIYUN_OSS，所以**未影响实际业务**。

---

## 七、问题与改进建议

1. **MinIO 配置应清理**：`jjb-saas-attachment.yml` 的 `minio.inter.url` 指向旧地址 `192.168.1.117:9001`，与现状不符，应改为 `192.168.20.100:9000` 或直接移除（既然不使用）。
2. **视频 OSS region 错配**：`ALIYUN_VIDEO_OSS` 的 `regionId: cn-shanghai` 与 `endpoint: oss-cn-hangzhou` 不一致，存在历史误配风险。
3. **`storage_type_enum` 字段为空**：`attachment_file.storage_type_enum` 全部为 NULL，无法直接通过 SQL 区分文件走的是 OSS 还是 MinIO。判断需通过 `bucket_name` 字段。
4. **平台总容量 73% 已用**（3.09 TB / 4 TB），建议监控告警。
5. **凭证无主从**：OSS AK/SK 直接以明文存储在 `attachment_tenant_channel.channel_config` JSON 字段，建议改用 K8s Secret + Nacos 占位符注入。

---

## 八、相关服务连通性入口

- **OSS 外网地址**：https://test-dragon-yf-pub.oss-cn-hangzhou.aliyuncs.com
- **OSS 内网地址**：https://test-dragon-yf-pub.oss-cn-hangzhou-internal.aliyuncs.com
- **MinIO Console**（master 节点）：http://192.168.20.100:9001（admin / Zcloud@zcloud2026，无业务数据）
- **MinIO API**：http://192.168.20.100:9000
- **attachment 服务内部访问路径**：`lb://jjb-saas-attachment/attachment/**`
- **文件预览地址模板**：`${common.gateway.network.http.external}/fileview/onlinePreview?xxx`
