存储引擎:S3 (Pro)
文件存储:S3 (Pro)专业版+介绍
在文件管理插件的基础上,新增支持兼容 S3 协议的文件存储类型。任何支持 S3 协议的对象存储服务均可轻松接入,例如亚马逊 S3、阿里云 OSS、腾讯云 COS、MinIO、Cloudflare R2等,进一步提升存储服务的兼容性与灵活性。
功能特点
-
客户端上传:文件上传过程无需经过 NocoBase 服务器,直接对接文件存储服务,实现更加高效、快速的上传体验。
-
私有访问:默认使用带有效期的签名 URL 访问文件,也可以为公开存储桶生成无签名 URL。
使用场景
-
文件表管理:集中管理和存储所有上传的文件,支持多种文件类型和存储方式,方便文件的分类与检索。
-
附件字段存储:用于表单或记录中上传附件的数据存储,支持与具体数据记录的关联。
插件配置
-
开启 plugin-file-storage-s3-pro 插件
-
点击 "Setting-> FileManager" 进入文件管理设置
-
点击 "Add new" 按钮,选择 "S3 Pro"

- 在弹出浮层后,您将看到需要填写的表单内容较多。可以参考后续文档,获取对应文件服务的相关参数信息,并将其正确填写到表单中。

URL 配置
S3 Pro 除了支持文件管理器通用的「NocoBase URL」「原始 URL」和「允许公开访问」,还可以分别配置上传 URL、访问 URL 的格式,以及是否使用签名 URL。通用选项的含义见 存储引擎概述。
这几个选项控制不同环节:
- 「NocoBase URL / 原始 URL」控制文件记录返回哪种地址
- 「允许公开访问」控制访问 NocoBase URL 时是否检查文件记录的查看权限
- 「不使用签名 URL」控制对象存储是否校验 URL 签名
这些配置可以独立组合。默认推荐使用 NocoBase URL、不勾选「允许公开访问」,并保持签名 URL 启用。

如何选择
上传 URL 格式
「上传 URL 格式」控制客户端上传文件时使用的 S3 URL。根据存储服务支持的格式选择即可,配置界面会按照当前 Endpoint、Bucket 和路径显示实际示例。其中:
- 「存储桶作为子域名」:
https://bucket-name.s3.example.com/path/to/object - 「存储桶作为子路径」:
https://s3.example.com/bucket-name/path/to/object - 「忽略存储桶」:
https://upload.example.com/path/to/object
访问 URL 格式
「访问 URL 格式」控制 S3 Pro 生成文件访问地址时,Bucket 出现在域名、路径中,还是不出现在 URL 中。三个选项的格式和上传 URL 相同,不过可以单独配置——比如上传使用 S3 Endpoint,访问使用不包含 Bucket 的 CDN 域名。
该选项会影响原始 URL,以及访问 NocoBase URL 后最终跳转到的存储地址,但不会改变 NocoBase URL 本身的格式。
不使用签名 URL
S3 Pro 默认使用签名 URL。生成的原始 URL 会包含签名参数,比如:
签名 URL 在「访问地址有效期」设置的时间内有效,存储桶可以保持私有。使用 NocoBase URL 时,NocoBase 会在权限检查通过后生成或跳转到签名地址。
勾选「不使用签名 URL」后,S3 Pro 会生成不带签名参数的地址。此时必须确保存储桶和上传的对象允许公开读取,「访问地址有效期」也不再生效。
「不使用签名 URL」只控制存储服务是否校验签名,不会改变 NocoBase 的文件记录权限。如果同时选择 NocoBase URL 且未勾选「允许公开访问」,请求仍然需要先通过 NocoBase 的权限检查。
服务商配置
亚马逊S3
Bucket 创建
-
打开 https://ap-southeast-1.console.aws.amazon.com/s3/home 进入S3控制台
-
点击右侧 "Create bucket" 按钮

- 填写 Bucket Name(存储桶名称),其他字段可保持默认设置,向下滚动至页面底部,点击 "Create" 按钮完成创建。


CORS配置
- 进入buckets 列表,找到并点击刚刚创建的 Bucket 以进入其详细页面

- 点击 "Permission" 标签页,然后向下滚动找到 CORS 配置部分


- 填入以下配置(可以自定细化配置),并保存

AccessKey、SecretAccessKey 获取
- 点击页面右上角的 "Security credentials" 按钮

- 向下滚动,找到 "Access Keys" 部分,点击 "Create Access Key" 按钮。

- 点击 同意(此处为主账号演示,建议在正式环境中使用 IAM 进行操作)。

- 保存页面中显示的 Access key 和 Secret access key

参数获取与配置
-
AccessKey ID 和 AccessKey Secret 为您在上一操作中获取到的对应值,请准确填写
-
进入 bucket 详情页的 properties 面板,您可以在其中获取到 Bucket 名称和 Region(区域)信息。

无签名公开访 问(可选)
只有当你需要使用无签名 URL 时,才需要把 Bucket 和上传的对象设置为公开读取。如果只是希望公开分享 NocoBase URL,可以勾选「允许公开访问」并继续使用签名 URL,不需要开放 Bucket。
- 进入Permissions 面板,向下滚动到Object Ownership,点击编辑,开启 ACLs

- 滚动到Block public access,点击编辑,设置成允许ACLs控制

- 在 NocoBase 中勾选「不使用签名 URL」
缩略图配置(可选)
此配置为可选项,适用于优化图像预览尺寸或效果时使用。请注意,该部署方案可能产生额外费用,具体费用请参考 AWS 的相关条款。
-
点击页面底部的
Launch in the AWS Console按钮,开始部署方案。
-
按照提示完成配置,以下几个选项需要特别注意:
- 在创建堆栈时,您需要指定一个包含源图像的 Amazon S3 存储桶名称。请填写您之前创建的存储桶名称。
- 如果您选择了部署演示 UI,部署完成后可通过该界面测试图像处理功能。在 AWS CloudFormation 控制台中,选择您的堆栈,转到“输出”选项卡,找到 DemoUrl 键对应的值,点击该链接打开演示界面。
- 本方案使用了
sharpNode.js 库来高效处理图像。您可以从 GitHub 仓库下载源代码,按需进行自定义。

-
配置完成后,等待部署状态变为
CREATE_COMPLETE即可。 -
在 NocoBase 配置中,有以下几个注意事项:
Thumbnail rule:填写图像处理相关参数,例如?width=100。具体可参考 AWS 文档。Access endpoint:填写部署后 Outputs -> ApiEndpoint 的值。- 「访问 URL 格式」:选择「忽略存储桶」(因为配置中已经填写了存储桶名称,访问时不再需要)。

配置示例

阿里云OSS
Bucket 创建

- 点进左侧菜单中的 "Buckets",然 后点击 "Create Bucket" 按钮开始创建存储桶

-
填写 bucket 相关信息,最后点击 Create 按钮
-
Bucket Name 符合自己的业务,名称随意
-
Region 选择自己用户最近的区域
-
其他内容可以默认,或者基于需求自行配置
-

CORS 配置
- 进入上一步创建的 bucket 详情页

- 点击中间菜单中的 "Content Security -> CORS"

- 点击 "Create Rule" 按钮,并填写相关内容滚动至下方点击 "OK"。可参考下方截图,或者进行更加详细设置

AccessKey、SecretAccessKey 获取
- 点击右上角头像下方 "AccessKey"

-
此处为了方便演示,使用主账户进行创建AccessKey,正式使用场景建议使 RAM 去创建,可以参考 https://help.aliyun.com/zh/ram/user-guide/create-an-accesskey-pair-1?spm=5176.28366559.0.0.1b5c3c2fUI9Ql8#section-rjh-18m-7kp
-
点击 "Create AccessKey" 按钮

- 进行账户验证

- 保存页面中显示的 Access key 和 Secret access key

参数获取与配置
-
AccessKey ID 和 AccessKey Secret 为上一操作中获取到的值
-
进入 bucket 详情页,获取到 Bucket

- 向下滚动,获取到 Region(后面的 ".aliyuncs.com" 不需要 )

- 获取到 endpoint 地址,填入NocoBase的时候需要添加 https:// 前缀

缩略图配置(可选)
此配置为可选项,仅在需要优化图像预览尺寸或效果时使用。
-
填写
Thumbnail rule相关参数。具体参数设置可参考 图片处理参数。 -
「上传 URL 格式」和「访问 URL 格式」保持相同即可。
配置示例

MinIO
Bucket 创建
- 点击左侧 Buckets 菜单 -> 点击 Create Bucket,进入创建页面
- 填写Bucket名称后,点击保存按钮
AccessKey、SecretAccessKey 获取
- 进入 Access Keys -> 点击 Create access key 按钮,进入创建页面

- 点击保存按钮

- 保存弹窗内的 Access Key 和 Secret Key,后续配置使用

参数配置
-
进入到 NocoBase -> File manager 页面
-
点击 Add new 按钮,选择 S3 Pro
-
填写表单
- AccessKey ID 和 AccessKey Secret 为上一步保存的文本
- Region:私有部署的MinIO没有Region概念,可以配置成 "auto"
- Endpoint:填写部署的服务域名或者ip地址
- 「访问 URL 格式」选择「存储桶作为子路径」
配置示例

腾讯COS
可以参考上述的文件服务进行配置,逻辑相似
配置示例

Cloudflare R2
可以参考上述的文件服务进行配置,逻辑相似
配置示例


