S3 兼容性
Learn about the compatibility of Supabase Storage with S3.
Supabase Storage 与 S3 协议兼容。你几乎可以使用任何 S3 客户端来与存储对象互动(比如 Cyberduck)。
🌐 Supabase Storage is compatible with the S3 protocol. You can use almost any S3 client to interact with your Storage objects (such as Cyberduck).
存储支持标准、可续传和S3上传,而且这些协议都是互通的。你可以用S3协议上传文件,然后用REST API查看,也可以用可续传上传,再用S3查看。
🌐 Storage supports standard, resumable and S3 uploads and all these protocols are interoperable. You can upload a file with the S3 protocol and list it with the REST API or upload with Resumable uploads and list with S3.
存储支持使用查询参数来预签 URL。具体来说,Supabase 存储要求使用 AWS 签名版本 4 来发起请求。要启用此功能,请在 Supabase 存储的设置页面通过 S3 协议启用 S3 连接。
🌐 Storage supports presigning a URL using query parameters. Specifically, Supabase Storage expects requests to be made using AWS Signature Version 4. To enable this feature, enable the S3 connection via S3 protocol in the Settings page for Supabase Storage.
不支持 S3 版本控制。 Supabase 存储不启用 S3 桶的版本控制功能。被删除的对象会被永久移除,无法恢复。
已实现的端点 #
🌐 Implemented endpoints
最常用的端点已经实现,未来还会增加更多。已实现的 S3 端点在下表中用 ✅ 标出。
🌐 The most commonly used endpoints are implemented, and more will be added. Implemented S3 endpoints are marked with ✅ in the following tables.
桶操作 #
🌐 Bucket operations
| API 名称 | 功能 |
|---|---|
| ✅ 列出存储桶 | |
| ✅ HeadBucket | ❌ 桶所有者: ❌ x-amz-expected-bucket-owner |
| ✅ 创建存储桶 | ❌ ACL: ❌ x-amz-acl ❌ x-amz-grant-full-control ❌ x-amz-grant-read ❌ x-amz-grant-read-acp ❌ x-amz-grant-write ❌ x-amz-grant-write-acp ❌ 对象锁定: ❌ x-amz-bucket-object-lock-enabled ❌ 存储桶所有者: ❌ x-amz-expected-bucket-owner |
| ✅ DeleteBucket | ❌ 存储桶所有者: ❌ x-amz-预期存储桶所有者 |
| ✅ 获取桶位置 | ❌ 桶所有者: ❌ x-amz-预期桶所有者 |
| ❌ DeleteBucketCors | ❌ 存储桶所有者: ❌ x-amz-预期存储桶所有者 |
| ❌ 获取存储桶加密 | ❌ 存储桶所有者: ❌ x-amz-预期存储桶所有者 |
| ❌ 获取桶生命周期配置 | ❌ 桶所有者: ❌ x-amz-预期桶所有者 |
| ❌ 获取存储桶Cors | ❌ 存储桶所有者: ❌ x-amz-预期存储桶所有者 |
| ❌ PutBucketCors | ❌ 校验和: ❌ x-amz-sdk-checksum-algorithm ❌ x-amz-checksum-algorithm ❌ 桶拥有者: ❌ x-amz-expected-bucket-owner |
| ❌ 设置存储桶生命周期配置 | ❌ 校验和: ❌ x-amz-sdk-checksum-algorithm ❌ x-amz-checksum-algorithm ❌ 存储桶所有者: ❌ x-amz-expected-bucket-owner |
对象操作 #
🌐 Object operations
| API 名称 | 功能 |
|---|---|
| ✅ HeadObject | ✅ 条件操作: ✅ If-Match ✅ If-Modified-Since ✅ If-None-Match ✅ If-Unmodified-Since ✅ Range: ✅ Range(在 HeadObject 中无效) ✅ partNumber ❌ SSE-C: ❌ x-amz-server-side-encryption-customer-algorithm ❌ x-amz-server-side-encryption-customer-key ❌ x-amz-server-side-encryption-customer-key-MD5 ❌ 请求付费方: ❌ x-amz-request-payer ❌ 存储桶所有者: ❌ x-amz-expected-bucket-owner |
| ✅ ListObjects | 查询参数: ✅ 分隔符 ✅ 编码类型 ✅ 标记 ✅ 最大键数 ✅ 前缀 ❌ 请求付款方: ❌ x-amz-request-payer ❌ 桶所有者: ❌ x-amz-expected-bucket-owner |
| ✅ ListObjectsV2 | 查询参数: ✅ list-type ✅ continuation-token ✅ delimiter ✅ encoding-type ✅ fetch-owner ✅ max-keys ✅ prefix ✅ start-after ❌ 请求付款方: ❌ x-amz-request-payer ❌ 桶所有者: ❌ x-amz-expected-bucket-owner |
| ✅ 获取对象 | ✅ 条件操作: ✅ If-Match ✅ If-Modified-Since ✅ If-None-Match ✅ If-Unmodified-Since ✅ 范围: ✅ Range ✅ PartNumber ❌ SSE-C: ❌ x-amz-服务器端加密-客户算法 ❌ x-amz-服务器端加密-客户密钥 ❌ x-amz-服务器端加密-客户密钥-MD5 ❌ 请求付款方: ❌ x-amz-请求付款方 ❌ 存储桶所有者: ❌ x-amz-预期存储桶所有者 |
| ✅ PutObject | System Metadata: ✅ Content-Type ✅ Cache-Control ✅ Content-Disposition ✅ Content-Encoding ✅ Content-Language ✅ Expires ❌ Content-MD5 ❌ Object Lifecycle ❌ Website: ❌ x-amz-website-redirect-location ❌ SSE-C: ❌ x-amz-server-side-encryption ❌ x-amz-server-side-encryption-customer-algorithm ❌ x-amz-server-side-encryption-customer-key ❌ x-amz-server-side-encryption-customer-key-MD5 ❌ x-amz-server-side-encryption-aws-kms-key-id ❌ x-amz-server-side-encryption-context ❌ x-amz-server-side-encryption-bucket-key-enabled ❌ Request Payer: ❌ x-amz-request-payer ❌ Tagging: ❌ x-amz-tagging ❌ Object Locking: ❌ x-amz-object-lock-mode ❌ x-amz-object-lock-retain-until-date ❌ x-amz-object-lock-legal-hold ❌ ACL: ❌ x-amz-acl ❌ x-amz-grant-full-control ❌ x-amz-grant-read ❌ x-amz-grant-read-acp ❌ x-amz-grant-write-acp ❌ Bucket Owner: ❌ x-amz-expected-bucket-owner |
| ✅ DeleteObject | ❌ 多因素认证: ❌ x-amz-mfa ❌ 对象锁定: ❌ x-amz-bypass-governance-retention ❌ 请求付款方: ❌ x-amz-request-payer ❌ 存储桶所有者: ❌ x-amz-expected-bucket-owner |
| ✅ DeleteObjects | ❌ 多因素认证: ❌ x-amz-mfa ❌ 对象锁定: ❌ x-amz-bypass-governance-retention ❌ 请求付款方: ❌ x-amz-request-payer ❌ 存储桶所有者: ❌ x-amz-expected-bucket-owner |
| ✅ ListMultipartUploads | ✅ 查询参数: ✅ delimiter(分隔符) ✅ encoding-type(编码类型) ✅ key-marker(键标记) ✅ max-uploads(最大上传数) ✅ prefix(前缀) ✅ upload-id-marker(上传ID标记) |
| ✅ CreateMultipartUpload | ✅ System Metadata: ✅ Content-Type ✅ Cache-Control ✅ Content-Disposition ✅ Content-Encoding ✅ Content-Language ✅ Expires ❌ Content-MD5 ❌ Website: ❌ x-amz-website-redirect-location ❌ SSE-C: ❌ x-amz-server-side-encryption ❌ x-amz-server-side-encryption-customer-algorithm ❌ x-amz-server-side-encryption-customer-key ❌ x-amz-server-side-encryption-customer-key-MD5 ❌ x-amz-server-side-encryption-aws-kms-key-id ❌ x-amz-server-side-encryption-context ❌ x-amz-server-side-encryption-bucket-key-enabled ❌ Request Payer: ❌ x-amz-request-payer ❌ Tagging: ❌ x-amz-tagging ❌ Object Locking: ❌ x-amz-object-lock-mode ❌ x-amz-object-lock-retain-until-date ❌ x-amz-object-lock-legal-hold ❌ ACL: ❌ x-amz-acl ❌ x-amz-grant-full-control ❌ x-amz-grant-read ❌ x-amz-grant-read-acp ❌ x-amz-grant-write-acp ❌ Storage class: ❌ x-amz-storage-class ❌ Bucket Owner: ❌ x-amz-expected-bucket-owner |
| ✅ CompleteMultipartUpload | ❌ 存储桶拥有者: ❌ x-amz-预计的存储桶拥有者 ❌ 请求付款人: ❌ x-amz-请求付款人 |
| ✅ AbortMultipartUpload | ❌ 请求付款方: ❌ x-amz-request-payer |
| ✅ CopyObject | ✅ Operation Metadata: ⚠️ x-amz-metadata-directive ✅ System Metadata: ✅ Content-Type ✅ Cache-Control ✅ Content-Disposition ✅ Content-Encoding ✅ Content-Language ✅ Expires ✅ Conditional Operations: ✅ x-amz-copy-source ✅ x-amz-copy-source-if-match ✅ x-amz-copy-source-if-modified-since ✅ x-amz-copy-source-if-none-match ✅ x-amz-copy-source-if-unmodified-since ❌ ACL: ❌ x-amz-acl ❌ x-amz-grant-full-control ❌ x-amz-grant-read ❌ x-amz-grant-read-acp ❌ x-amz-grant-write-acp ❌ Website: ❌ x-amz-website-redirect-location ❌ SSE-C: ❌ x-amz-server-side-encryption ❌ x-amz-server-side-encryption-customer-algorithm ❌ x-amz-server-side-encryption-customer-key ❌ x-amz-server-side-encryption-customer-key-MD5 ❌ x-amz-server-side-encryption-aws-kms-key-id ❌ x-amz-server-side-encryption-context ❌ x-amz-server-side-encryption-bucket-key-enabled ❌ x-amz-copy-source-server-side-encryption-customer-algorithm ❌ x-amz-copy-source-server-side-encryption-customer-key ❌ x-amz-copy-source-server-side-encryption-customer-key-MD5 ❌ Request Payer: ❌ x-amz-request-payer ❌ Tagging: ❌ x-amz-tagging ❌ x-amz-tagging-directive ❌ Object Locking: ❌ x-amz-object-lock-mode ❌ x-amz-object-lock-retain-until-date ❌ x-amz-object-lock-legal-hold ❌ Bucket Owner: ❌ x-amz-expected-bucket-owner ❌ x-amz-source-expected-bucket-owner ❌ Checksums: ❌ x-amz-checksum-algorithm |
| ✅ 上传部分 | ✅ 系统元数据: ❌ 内容-MD5 ❌ SSE-C: ❌ x-amz-服务器端加密 ❌ x-amz-服务器端加密-客户算法 ❌ x-amz-服务器端加密-客户密钥 ❌ x-amz-服务器端加密-客户密钥-MD5 ❌ 请求付款方: ❌ x-amz-请求付款方 ❌ 存储桶所有者: ❌ x-amz-预期存储桶所有者 |
| ✅ 上传分段拷贝 | ❌ 条件操作: ❌ x-amz-copy-source ❌ x-amz-copy-source-if-match ❌ x-amz-copy-source-if-modified-since ❌ x-amz-copy-source-if-none-match ❌ x-amz-copy-source-if-unmodified-since ✅ 范围: ✅ x-amz-copy-source-range ❌ SSE-C: ❌ x-amz-server-side-encryption-customer-algorithm ❌ x-amz-server-side-encryption-customer-key ❌ x-amz-server-side-encryption-customer-key-MD5 ❌ x-amz-copy-source-server-side-encryption-customer-algorithm ❌ x-amz-copy-source-server-side-encryption-customer-key ❌ x-amz-copy-source-server-side-encryption-customer-key-MD5 ❌ 请求付费方: ❌ x-amz-request-payer ❌ Bucket 所有者: ❌ x-amz-expected-bucket-owner ❌ x-amz-source-expected-bucket-owner |
| ✅ ListParts | 查询参数: ✅ max-parts ✅ part-number-marker ❌ 请求付款方: ❌ x-amz-request-payer ❌ 存储桶拥有者: ❌ x-amz-expected-bucket-owner |