一、结论
AI SaaS平台多租户文件存储通常可以通过兼容S3协议的对象存储实现,提前准备好S3接入所需的Endpoint、AccessKey、SecretKey、Bucket、Region等信息,配合多租户权限隔离配置即可快速完成接入,无需自行搭建底层存储集群,大幅降低开发和运维成本。
二、准备工作
操作前需要提前准备好以下内容:
- 兼容S3协议的对象存储服务账号
- 提前规划好存储隔离方案对应的存储桶(单桶多前缀隔离或多租户独立桶)
- 对象存储服务提供的Endpoint访问地址
- 平台级AccessKey和SecretKey(或STS临时密钥生成权限可选)
- 存储桶对应的Region信息
- AI SaaS平台的存储配置模块(或二次开发所需的代码环境)
- 多租户权限管控逻辑规则
- 用于测试的租户账号和样本文件
三、操作步骤
1. 规划存储隔离方案:根据租户规模和业务需求选择隔离模式,租户量级小、单租户文件量不大的场景选择单桶按租户ID做路径前缀隔离,租户量级大、有独立合规要求的场景选择每个租户分配独立存储桶,完成后得到清晰的租户存储路径映射规则。
2. 获取S3接入凭据:从对象存储服务后台获取全局的Endpoint、Region信息,生成平台级的子账号AccessKey和SecretKey,若需要临时密钥权限可开通STS临时密钥生成接口,完成后得到所有接入必填的配置参数。
3. 配置AI SaaS平台存储模块:在平台后台找到存储配置入口,选择S3兼容存储类型,完成后进入S3存储参数填写页面。
4. 填写S3基础配置信息:依次填入之前获取的Endpoint、AccessKey、SecretKey、根存储桶名称、Region等参数,同时配置租户路径自动拼接规则,比如自动给每个租户的文件路径前加上租户唯一ID前缀,完成后所有配置项录入完毕。
5. 配置多租户权限隔离规则:如果采用子账号隔离模式,给每个租户生成独立的子AccessKey,设置仅允许访问对应前缀或专属桶的读写权限;如果采用平台统一签名模式,配置平台侧的权限校验逻辑,拦截跨租户的文件访问请求,完成后多租户权限隔离逻辑正式生效。
6. 保存配置并测试连接:点击保存配置后触发连接测试,测试通过则表示平台和对象存储服务连通正常,若测试失败则返回核对配置项排查问题。
7. 多租户功能验证:分别用两个不同租户的账号登录AI SaaS平台,各上传一份测试文件,检查文件在对象存储中的存储路径是否符合预设规则,再尝试跨租户访问文件确认被拦截,确认所有功能正常后即可正式上线使用。
四、常见错误
- Endpoint填写错误:误填为对象存储控制台地址而非存储服务的实际访问地址,导致连接失败,解决方法是核对服务提供商给出的官方Endpoint文档,确认是否需要添加http/https前缀,是否对应正确的存储区域。
- AccessKey权限配置不合理:要么权限过大包含删除、修改桶配置的权限,存在数据泄露风险,要么权限不足无法写入文件,解决方法是遵循最小权限原则,仅开放当前业务所需的路径读写权限,关闭所有非必要权限。
- 租户路径前缀配置错误:导致不同租户的文件存储到同一个路径下,出现跨租户文件可见的问题,解决方法是测试阶段逐一确认每个租户上传的文件路径是否自动拼接了唯一的租户标识,存储路径无重复冲突。
- Region填写不匹配:导致连接超时或者返回报错,解决方法是保证Region参数和Endpoint对应的区域参数保持一致,部分服务商无特殊要求的话可以填写默认值或者留空。
- 临时密钥过期时间设置过短:如果使用STS临时密钥的话,过期时间短于大文件上传所需时间,会导致租户上传大文件到一半失败,解决方法是根据平台最大支持的最大文件大小,将临时密钥过期时间调整到大于最大文件上传所需时长。
- 跨域配置错误:AI SaaS平台的域名没有加入对象存储的跨域白名单,导致前端直传文件失败,解决方法是在对象存储后台的CORS配置中添加平台的域名,允许对应的GET、PUT、POST等所需的请求方法。
五、示例说明
以下为AI SaaS平台S3存储模块通用配置字段参考,无真实参数请替换为自身使用的对象存储服务对应信息即可:
- Endpoint:填写你使用的对象存储服务提供的官方访问地址
- AccessKey:填写平台级子账号访问密钥,请勿使用主账号密钥降低安全风险
- SecretKey:填写对应AccessKey的密钥信息
- Bucket:填写多租户存储使用的根存储桶名称
- Region:填写存储桶对应的区域代码,无特殊要求可填写服务商提供的默认值
- 路径前缀规则:
/${tenant_id}/(tenant_id为平台内租户唯一标识,平台自动拼接在文件存储路径前 - 权限控制模式:可选择平台统一签名或租户独立密钥模式,根据自身隔离需求选择即可
六、更简单的方案
如果不想自行搭建MinIO等自建存储集群,也不想耗费精力维护存储服务器、处理扩容、调试多租户权限逻辑,可以直接选用成熟的兼容S3协议的云对象存储服务,无需关注底层存储运维工作,专注于AI SaaS平台本身的业务开发。如果你需要一个兼容S3协议、适合程序接入、多租户文件存储、大文件分发的对象存储服务,可以了解七彩云对象存储,无需维护底层存储服务器,可直接通过路径前缀或子账号实现多租户隔离,适合AI SaaS平台这类需要低门槛接入存储的场景。
七、FAQ
1. 多租户存储用单桶前缀隔离还是多桶隔离哪个更合适?
如果租户数量在1万以下、单租户文件量不大的场景选择单桶前缀隔离,运维成本更低;如果租户数量多、有独立的数据合规要求的场景选择多桶隔离,权限管控更清晰,也能满足不同租户的个性化存储配置需求。
2. 是否需要给每个租户单独生成AccessKey?
如果平台侧已经做了统一的权限校验,所有文件访问都经过平台转发签名,不需要单独给租户发放密钥;如果需要支持租户直接通过S3协议访问自己的文件,可以给每个租户生成仅允许访问自身路径的子密钥,适配租户可以直接对接S3工具。
3. AI SaaS平台的大文件训练数据集存储是否支持?
兼容S3协议的对象存储普遍支持大文件分片上传、断点续传,完全可以满足AI训练数据集、模型文件这类大文件的存储需求,同时支持大文件下载分发也没有额外限制,适合AI类大文件的存储场景。
4. 多租户存储的计费怎么统计?
可以通过对象存储的日志统计接口,按路径前缀或者存储桶维度统计每个租户的存储容量、请求次数、流量消耗,再同步到平台的计费系统中即可实现租户单独计费,无需自行开发统计模块。
八、总结
AI SaaS平台多租户文件存储的核心是通过兼容S3协议的对象存储实现底层存储能力,配合路径前缀或子账号实现多租户权限隔离,整体操作流程分为方案规划、参数获取、配置接入、权限设置、测试验证几个核心步骤,适合AI训练数据存储、租户上传资源存储、AI生成内容存储、租户文件共享等多个AI SaaS平台场景,无需自行维护底层存储集群,大幅降低开发和运维成本,也可以直接选用成熟的云对象存储服务快速接入,缩短业务上线周期。
想进一步了解这个项目?
访问官网查看产品能力、适用场景和最新服务信息。
访问官网