diff --git a/Amazon-S3-API.md b/Amazon-S3-API.md index a4f185f..e082458 100644 --- a/Amazon-S3-API.md +++ b/Amazon-S3-API.md @@ -48,6 +48,7 @@ To be sure, you can look at the function defined in the files `weed/s3api/s3api_ * ListObjectsV2 * ListObjectsV1 * DeleteMultipleObjects +* GetObjectAttributes * PostPolicy // Object Tagging diff --git a/Supported-APIs-vs-Minio.md b/Supported-APIs-vs-Minio.md index f9f0cc7..f8e7c5f 100644 --- a/Supported-APIs-vs-Minio.md +++ b/Supported-APIs-vs-Minio.md @@ -20,7 +20,7 @@ This page compares the S3 API implementation in SeaweedFS with MinIO. | **ACLs** | ✅ Full | ⚠️ Partial | MinIO has dummy handlers for some ACLs | | **S3 Tables** | ✅ Full | ❌ No | SeaweedFS supports Iceberg via S3 Tables | | **Object Select** | ❌ No | ✅ Yes | `SelectObjectContent` | -| **Object Attributes**| ❌ No | ✅ Yes | `GetObjectAttributes` | +| **Object Attributes**| ✅ Yes | ✅ Yes | `GetObjectAttributes` | | **Lambda Triggers** | ❌ No | ✅ Yes | `GetObjectLambda` | | **STS** | ✅ Partial | ✅ Full | SeaweedFS: standard AssumeRole APIs. MinIO: several extensions. | @@ -28,7 +28,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`, `GetObjectTagging`, `PutObjectTagging`, `DeleteObjectTagging`, `GetObjectAcl`, `PutObjectAcl`, `GetObjectRetention`, `PutObjectRetention`, `GetObjectLegalHold`, `PutObjectLegalHold` +- **Object Operations**: `HeadObject`, `GetObject`, `PutObject`, `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 @@ -39,7 +39,7 @@ This page compares the S3 API implementation in SeaweedFS with MinIO. ## MinIO Specific / Not in SeaweedFS -- **Advanced Object Querying**: `SelectObjectContent`, `GetObjectAttributes`. +- **Advanced Object Querying**: `SelectObjectContent`. - **Extensions**: `GetObjectLambda`, `PostRestoreObject`, `Snowball Extract`. - **Replication**: MinIO has more native S3 replication APIs. @@ -63,7 +63,7 @@ This page compares the S3 API implementation in SeaweedFS with MinIO. | `s3:DeleteObject` | ✅ | ✅ | | `s3:CopyObject` | ✅ | ✅ | | `s3:SelectObjectContent` | ❌ | ✅ | -| `s3:GetObjectAttributes` | ❌ | ✅ | +| `s3:GetObjectAttributes` | ✅ | ✅ | | `s3:PostRestoreObject` | ❌ | ✅ | | `s3:GetBucketCORS` | ✅ | ✅ | | `s3:PutBucketCORS` | ✅ | ⚠️ (Dummy) |