如何在本地下载整个 Supabase Storage Bucket
Source: Dev.to
介绍
如果你一直在使用 Supabase,你会知道它们的 Storage API 对网页应用来说非常棒。有时你只需要把文件下载到本地机器——用于手动备份、批量编辑或迁移数据。虽然可以使用 Supabase SDK 编写脚本,但还有一种更快捷的“无代码”方式:Cyberduck。
注意: Cyberduck 是 Supabase 官方合作伙伴集成。它是一款安全、开源的工具,Supabase 推荐使用它通过 S3 协议管理存储。你可以在 Supabase 文档中找到官方集成页面。
前置条件
- 已启用 Storage 的 Supabase 项目。
- 已安装 Cyberduck(从官方下载页面获取最新版本)。
- 为你的 Supabase 项目准备的 S3 访问密钥。
创建 S3 访问密钥
- 登录 Supabase 仪表板。
- 前往 Storage → S3 Settings(侧边栏)。
- 在 Access Keys 下,点击 Create Access Key。
- 输入描述(例如 “Local Backup”),然后点击 Create。
- 重要: 立即复制 Access Key ID 和 Secret Access Key;之后将无法再次查看 secret。
为 Supabase 配置 Cyberduck
-
在电脑上创建一个名为
supabase.cyberduckprofile的文件。 -
将以下 XML 粘贴到文件中:
<Profile> <Protocol>s3</Protocol> <Vendor>Supabase Storage S3</Vendor> <Scheme>https</Scheme> <Description>Supabase Storage (S3)</Description> <DefaultHostname>YOUR_PROJECT_REF.supabase.co</DefaultHostname> <DefaultPort>443</DefaultPort> <Region>YOUR_REGION</Region> <Properties> <Property key="s3.storage.class.options">STANDARD</Property> <Property key="s3.bucket.virtualhost.disable">true</Property> </Properties> <Context>/storage/v1/s3</Context> </Profile> -
将
YOUR_PROJECT_REF替换为你的项目 ID(在 Supabase URL 中可见),将YOUR_REGION替换为相应的区域(例如ap-south-1)。 -
保存文件并 双击 它。Cyberduck 将打开并提示输入凭证。填写之前生成的 Access Key ID 和 Secret Access Key。
本地下载存储桶
- 连接成功后,你会看到 Supabase 的存储桶以文件夹形式展示。
- 选择 想要下载的存储桶。
- 右键点击该存储桶,选择 Download。指定本机的目标文件夹,Cyberduck 将完成传输。
保持本地文件夹同步(镜像)
如果希望本地副本随时保持最新,而无需每次都重新下载全部内容:
- 右键点击存储桶(或本地文件夹),选择 Mirror。
- Cyberduck 会比较远程和本地内容,仅传输差异部分。
使用 Cyberduck 通过 S3 访问的其他场景
- 批量上传: 直接将成千上万的资产(例如产品图片)拖拽到 Supabase——相比网页仪表板在大批量时更稳定。
- 直接媒体编辑: 某些编辑器允许你从 Cyberduck 打开文件,编辑后立即保存回云端。
- 跨云迁移: 通过打开两个 Cyberduck 窗口,将文件在 AWS S3、Cloudflare R2 与 Supabase 之间拖拽移动。
- 基础设施测试: 在编写前端代码之前,验证 S3 策略和类似 IAM 的权限设置。