mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-10-16 02:58:35 +02:00
Update Supported-APIs-vs-Minio.md
1 parent
1f6601d848
commit
8088f8efb7
1 file changed
+28
-4
+28
-4
@@ -17,7 +17,10 @@ This page compares the S3 API implementation in SeaweedFS with MinIO.
|
||||
| **Bucket Policy** | ✅ Full | ✅ Full | |
|
||||
| **Lifecycle** | ✅ Full | ✅ Full | |
|
||||
| **Versioning** | ✅ Full | ✅ Full | |
|
||||
| **ACLs** | ✅ Full | ⚠️ Partial | MinIO has dummy handlers for some ACLs |
|
||||
| **ACLs** | ✅ Full | ⚠️ Dummy | MinIO accepts but does not enforce bucket and object ACL requests |
|
||||
| **Bucket Notifications** | ❌ No | ✅ Full | `GetBucketNotification`, `PutBucketNotification`, `ListenBucketNotification` |
|
||||
| **Bucket Replication** | ❌ No | ✅ Full | `Get/Put/DeleteBucketReplication` plus metrics and reset extensions |
|
||||
| **Bucket Policy Status** | ❌ No | ✅ Full | `GetBucketPolicyStatus` |
|
||||
| **S3 Tables** | ✅ Full | ❌ No | SeaweedFS supports Iceberg via S3 Tables |
|
||||
| **Object Select** | ❌ No | ✅ Yes | `SelectObjectContent` |
|
||||
| **Object Attributes**| ✅ Yes | ✅ Yes | `GetObjectAttributes` |
|
||||
@@ -29,7 +32,7 @@ This page compares the S3 API implementation in SeaweedFS with MinIO.
|
||||
|
||||
- **Service Operations**: `ListBuckets`
|
||||
- **Bucket Operations**: `HeadBucket`, `PutBucket`, `DeleteBucket`, `ListObjectsV1`, `ListObjectsV2`, `ListObjectVersions`, `GetBucketAcl`, `PutBucketAcl`, `GetBucketPolicy`, `PutBucketPolicy`, `DeleteBucketPolicy`, `GetBucketCors`, `PutBucketCors`, `DeleteBucketCors`, `GetBucketLifecycle`, `PutBucketLifecycle`, `DeleteBucketLifecycle`, `GetBucketLocation`, `GetBucketVersioning`, `PutBucketVersioning`, `GetBucketObjectLockConfiguration`, `PutBucketObjectLockConfiguration`, `GetBucketTagging`, `PutBucketTagging`, `DeleteBucketTagging`, `GetBucketEncryption`, `PutBucketEncryption`, `DeleteBucketEncryption`
|
||||
- **Object Operations**: `HeadObject`, `GetObject`, `PutObject`, `DeleteObject`, `CopyObject`, `DeleteMultipleObjects`, `GetObjectAttributes`, `GetObjectTagging`, `PutObjectTagging`, `DeleteObjectTagging`, `GetObjectAcl`, `PutObjectAcl`, `GetObjectRetention`, `PutObjectRetention`, `GetObjectLegalHold`, `PutObjectLegalHold`
|
||||
- **Object Operations**: `HeadObject`, `GetObject`, `PutObject`, `PostObject` (browser form upload), `DeleteObject`, `CopyObject`, `DeleteMultipleObjects`, `GetObjectAttributes`, `GetObjectTagging`, `PutObjectTagging`, `DeleteObjectTagging`, `GetObjectAcl`, `PutObjectAcl`, `GetObjectRetention`, `PutObjectRetention`, `GetObjectLegalHold`, `PutObjectLegalHold`
|
||||
- **Multipart Upload**: `CreateMultipartUpload`, `AbortMultipartUpload`, `CompleteMultipartUpload`, `UploadPart`, `CopyObjectPart`, `ListMultipartUploads`, `ListParts`
|
||||
|
||||
## SeaweedFS Specific / Better Implemented
|
||||
@@ -41,8 +44,11 @@ This page compares the S3 API implementation in SeaweedFS with MinIO.
|
||||
## MinIO Specific / Not in SeaweedFS
|
||||
|
||||
- **Advanced Object Querying**: `SelectObjectContent`.
|
||||
- **Extensions**: `GetObjectLambda`, `PostRestoreObject`, `Snowball Extract`.
|
||||
- **Replication**: MinIO has more native S3 replication APIs.
|
||||
- **Extensions**: `GetObjectLambda`, `PostRestoreObject`, `PutObjectExtract` (Snowball auto-extract).
|
||||
- **Bucket Notifications**: `GetBucketNotification`, `PutBucketNotification`, plus MinIO's `ListenBucketNotification` SSE-style event stream.
|
||||
- **Bucket Replication**: `GetBucketReplication`, `PutBucketReplication`, `DeleteBucketReplication`, replication metrics (v1/v2), `ResetBucketReplicationStart`, `ResetBucketReplicationStatus`, `ValidateBucketReplicationCreds`.
|
||||
- **Bucket Policy Status**: `GetBucketPolicyStatus`.
|
||||
- **Dummy bucket configs** (accepted, not enforced): `GetBucketWebsite`/`DeleteBucketWebsite`, `GetBucketLogging`, `GetBucketAccelerate`.
|
||||
|
||||
## STS API Comparison
|
||||
|
||||
@@ -84,6 +90,17 @@ This page compares the S3 API implementation in SeaweedFS with MinIO.
|
||||
| `s3:GetBucketTagging` | ✅ | ✅ |
|
||||
| `s3:PutBucketOwnershipControls` | ✅ | ❌ (Rejected) |
|
||||
| `s3:GetPublicAccessBlock` | ✅ | ❌ (Rejected) |
|
||||
| `s3:GetBucketNotification` | ❌ | ✅ |
|
||||
| `s3:PutBucketNotification` | ❌ | ✅ |
|
||||
| `s3:GetBucketReplication` | ❌ | ✅ |
|
||||
| `s3:PutBucketReplication` | ❌ | ✅ |
|
||||
| `s3:DeleteBucketReplication` | ❌ | ✅ |
|
||||
| `s3:GetBucketPolicyStatus` | ❌ | ✅ |
|
||||
| `s3:GetBucketWebsite` | ❌ | ⚠️ (Dummy) |
|
||||
| `s3:GetBucketLogging` | ❌ | ⚠️ (Dummy) |
|
||||
| `s3:GetBucketAccelerate` | ❌ | ⚠️ (Dummy) |
|
||||
| `s3:GetObjectACL` | ✅ | ⚠️ (Dummy) |
|
||||
| `s3:PutObjectACL` | ✅ | ⚠️ (Dummy) |
|
||||
|
||||
## IAM API Comparison
|
||||
|
||||
@@ -129,6 +146,13 @@ For group management specifically, MinIO supports broadly similar administration
|
||||
| `iam:GetGroupPolicy` | ✅ | ❌ | |
|
||||
| `iam:DeleteGroupPolicy` | ✅ | ❌ | |
|
||||
| `iam:ListGroupPolicies` | ✅ | ❌ | |
|
||||
| `iam:GetPolicyVersion` | ✅ | ❌ | Managed policy version read; no MinIO equivalent |
|
||||
| `iam:ListPolicyVersions` | ✅ | ❌ | Managed policy version list; no MinIO equivalent |
|
||||
| `iam:CreateServiceAccount` | ✅ | ⚠️ Proprietary | MinIO: `mc admin user svcacct add` |
|
||||
| `iam:DeleteServiceAccount` | ✅ | ⚠️ Proprietary | MinIO: `mc admin user svcacct rm` |
|
||||
| `iam:GetServiceAccount` | ✅ | ⚠️ Proprietary | MinIO: `mc admin user svcacct info` |
|
||||
| `iam:ListServiceAccounts` | ✅ | ⚠️ Proprietary | MinIO: `mc admin user svcacct ls` |
|
||||
| `iam:UpdateServiceAccount` | ✅ | ⚠️ Proprietary | MinIO: `mc admin user svcacct edit` |
|
||||
| `iam:GetAccessKeyLastUsed` | 📋 Planned | ❌ | Return when an access key was last used |
|
||||
| `iam:TagUser` | 📋 Planned | ❌ | Add tags to a user |
|
||||
| `iam:UntagUser` | 📋 Planned | ❌ | Remove tags from a user |
|
||||
|
||||
Reference in new issue
Block a user