Supabase Storage:现在支持 S3 协议
Supabase Storage 现已正式成为 S3 兼容存储提供商。这是用户呼声最高的功能之一,现已公开发布 Alpha 版本。断点续传功能也正在从 Beta 版过渡到正式发布。
Supabase 存储引擎是完全开源的,是少数提供 3 种可互操作协议来管理文件的存储解决方案之一:
S3 兼容性
Supabase 始终致力于采用行业标准。支持标准使工作负载可移植,这是一项关键的产品原则。S3 API 无疑是一种存储标准,我们正在努力使其可供各种经验水平的开发人员使用。
S3 协议向下兼容我们的其他 API。如果您已经通过我们的 REST 或 TUS API 使用存储,那么现在您可以使用任何 S3 客户端与您的存储桶和文件进行交互:使用 TUS 上传,使用 REST 提供服务,并使用 S3 协议进行管理。
该协议适用于云端、本地开发和自托管。请查看我们的文档了解API 兼容性。
使用 Supabase S3 进行身份验证
要使用 Supabase S3 进行身份验证,您有 2 个选择:
1-标准 access_key
和 secret_key
凭证。您可以从存储设置页面生成这些。此身份验证方法与支持 S3 协议的工具广泛兼容。由于它提供对存储资源的完全访问权限,因此它只能在服务器端使用。
我们将在不久的将来添加可以访问特定存储桶的范围访问密钥凭证。
2-使用 RLS 的用户范围凭据。这利用了所有 Supabase 服务中广为采用的行级安全性概念。它允许您通过将存储操作范围限定到特定的经过身份验证的用户或角色来与 S3 协议交互,同时遵循您现有的 RLS 策略。此方法通过使用 S3 协议支持的会话令牌标头来实现。您可以在文档中找到有关如何使用会话令牌机制的更多信息。
S3兼容集成
在 S3 协议的支持下,您现在可以通过提供一对可随时撤销的凭证将 Supabase Storage 连接到许多第三方工具和服务。
您可以使用流行的工具进行备份和迁移,例如:
- AWS CLI:官方 AWS CLI
- rclone:一个用于管理云存储上的文件的命令行程序。
- Cyberduck:适用于 Mac 和 Windows 的云存储浏览器。
- 以及任何其他与 s3 兼容的工具。
在此处查看我们的 Cyberduck 指南。
面向数据工程师的 S3
S3 兼容性为数据工程师提供了一个很好的原语。您可以将其与许多流行工具一起使用:
- 像 ClickHouse 这样的数据仓库
- 查询引擎,例如 DuckDB、Spark、Trino 和 Snowflake 外部表
- Fivetran 和 Airbyte 等数据加载器
在这个例子中,我们出色的数据分析师 Tyler 演示了如何将 Parquet 文件存储在 Supabase Storage 中并使用 DuckDB 直接查询它们:
S3 中的分段上传
除了标准上传和可续传上传之外,我们现在还支持通过 S3 协议进行分段上传。这允许您通过并行上传多个数据块,然后在最后将它们连接起来,从而最大化上传吞吐量。
可续传上传现已正式发布
随着平台 GA 公告的发布,我们也很高兴地宣布可恢复上传功能也已普遍可用。
可断点上传由TUS 协议提供支持。与 TUS 团队密切合作,这段旅程意义非凡。在此,我要特别感谢 TUS 协议的维护者@murderlon和@acconut,感谢他们为开源所付出的协作。
Supabase从 TUS Spec 的 Node 实现中贡献了一些高级功能,包括分布式锁、最大文件大小、到期扩展和大量错误修复:
这些功能对 Supabase 至关重要,而且由于TUS 节点服务器是开源的,因此您也可以使用它们。这是另一个核心原则:只要有可能,我们就会使用并支持现有工具,而不是从头开始开发。
- 跨存储桶传输:我们增加了跨存储桶复制和移动对象的功能,以前您只能在同一个 Supabase 存储桶内执行这些操作。
- 标准化错误代码:存储服务器的错误代码现已标准化,现在针对特定错误进行分支逻辑将更加容易。您可以在此处找到错误代码列表。
- 多租户迁移:我们对所有租户的迁移运行进行了重大改进。这减少了整个集群的迁移错误,并使我们能够以异步方式运行长时间运行的迁移。敬请关注我们即将发布的博客文章,了解更多详情。
- 依赖项解耦:存储与其他 Supabase 产品完全解耦,这意味着您可以将存储作为独立服务运行。使用此docker-compose 文件开始使用。
入门
- 在我们的文档中查看 S3 API 兼容性
- 了解S3 身份验证
- 尝试将 S3 与 Cyberduck 结合使用:遵循我们的集成指南
- 尝试将 S3 与 DuckDB 结合使用:按照YouTube 上的指南操作
更多关于 GA 周的信息
文章来源:https://dev.to/supabase/supabase-storage-now-supports-the-s3-protocol-3479