跳转到主要内容
存储 provider 决定了 NekoHub 把图片文件写到哪里、如何读取,以及是否支持公开直链、私有访问、可见性切换和删除。

Provider 类型

Local

文件保存在服务器本地磁盘。配置最简单,适合开发和单机部署。

S3-compatible

文件保存在兼容 S3 的对象存储中,通常是生产环境的首选。

GitHub Repo

文件提交到 GitHub 仓库。更适合作为发布型或实验型存储。

Local

适合单机、小规模或开发环境。优点是简单,缺点是高可用、扩容和跨节点共享比较困难。

S3-compatible

适合生产。通常具备更好的耐久性、扩展性,也更容易挂 CDN。

GitHub Repo

实验性模式。它更像“把资源发布到仓库”,而不是传统对象存储。

存储 Provider Profile

NekoHub 不是只维护单一 provider 配置,而是允许你管理多个 storage provider profile。每个 profile 都有:
  • 名称与显示名
  • provider 类型
  • provider 相关配置
  • 是否启用
  • 是否是数据库中的默认写入 profile
  • 一组能力标记
你可以在 /providers 页面或 /api/v1/system/storage/providers API 里管理它们。

默认 Provider Profile

当上传资产时没有显式指定 storageProviderProfileId,系统会选择默认写入 profile。 要注意两层含义:
  • 环境变量中的 Storage__Provider 决定运行时 provider 能力与初始 bootstrap 行为
  • 数据库中的默认 profile 决定实际默认写入目标
如果数据库中已经有默认 profile,那么实际写入目标可能与环境变量不同。

Provider 能力

不同 provider 暴露的能力不同,常见字段包括:
能力说明
supportsPublicRead是否支持公开读取
supportsPrivateRead是否支持私有读取
supportsVisibilityToggle是否支持上传后切换公开性
supportsDelete是否支持删除文件
supportsDirectPublicUrl是否支持直接公开地址
requiresAccessProxy私有读取是否必须经过 NekoHub 代理
recommendedForPrimaryStorage是否适合作为主存储
isExperimental是否属于实验性 provider
上线前要确认你所选 provider 的能力是否满足业务需求,尤其是私有访问、删除和公开性切换。