S3 API Compatibility
This page documents S3 APIs supported by MinIO AIStor. For reference documentation on any given API, see the corresponding documentation for Amazon S3.
Object APIs
Conditional headers
MinIO AIStor supports conditional operations using the following HTTP headers:
| Header | Supported operations |
|---|---|
If-Match |
GetObject, HeadObject, PutObject, CopyObject, DeleteObject, CreateMultipartUpload |
If-None-Match |
GetObject, HeadObject, PutObject, CopyObject, CreateMultipartUpload |
If-Modified-Since |
GetObject, HeadObject |
If-Unmodified-Since |
GetObject, HeadObject |
x-amz-copy-source-if-match |
CopyObject, UploadPartCopy |
x-amz-copy-source-if-none-match |
CopyObject, UploadPartCopy |
x-amz-copy-source-if-modified-since |
CopyObject, UploadPartCopy |
x-amz-copy-source-if-unmodified-since |
CopyObject, UploadPartCopy |
DeleteObjects supports conditional deletes using the <ETag> element in the request body.
Object locking
Unsupported object APIs
- GetObjectAcl
- PutObjectAcl
Multipart uploads
Differences from S3 APIs for multipart uploads
-
ListMultipartUploadsrequires the exact object name as a prefix. -
The
AbortIncompleteMultipartUploadlifecycle action is not supported withPutBucketLifecycle.
Bucket APIs
Bucket replication
Bucket lifecycle
Bucket notifications
Bucket policies
Unsupported bucket API operations
- GetBucketInventoryConfiguration
- PutBucketInventoryConfiguration
- DeleteBucketInventoryConfiguration
- GetBucketMetricsConfiguration
- PutBucketMetricsConfiguration
- DeleteBucketMetricsConfiguration
- PutBucketWebsite
- GetBucketLogging
- PutBucketLogging
- PutBucketAccelerateConfiguration
- DeleteBucketAccelerateConfiguration
- PutBucketRequestPayment
- DeleteBucketRequestPayment
- PutBucketAcl
- HeadBucketAcl
- GetPublicAccessBlock
- PutPublicAccessBlock
- DeletePublicAccessBlock
- GetBucketOwnershipControls
- PutBucketOwnershipControls
- DeleteBucketOwnershipControls
- GetBucketIntelligentTieringConfiguration
- PutBucketIntelligentTieringConfiguration
- ListBucketIntelligentTieringConfigurations
- DeleteBucketIntelligentTieringConfiguration
- GetBucketAnalyticsConfiguration
MinIO AIStor alternatives for unsupported bucket API operations
- For calls to
BucketACLorObjectACLoperations, use Policies. - For calls to
BucketWebsiteoperations, usecaddyornginx. - For calls to
BucketAnalytics,BucketMetrics, orBucketLoggingoperations, use Bucket notifications.
S3 extensions
MinIO AIStor extends the S3 API with additional capabilities, including the S3 Fan-Out Extension, which writes multiple independently-readable objects from a single source data stream in one PostUpload request.
S3 Express mode
When MinIO AIStor runs in S3 Express mode, the supported S3 API surface differs from the default S3 API mode.
S3 Express mode also adds the AppendObject behavior, which lets a client append data to an existing object by issuing a PutObject request with the x-amz-write-offset-bytes header.
For the list of operations supported and disabled in S3 Express mode, see S3 Express mode.
MinIO-specific error codes
In addition to the standard S3 error codes, MinIO AIStor returns the following MinIO-specific error codes:
| Code | HTTP status | Description |
|---|---|---|
NotSupported |
501 | API operation not implemented. |
NotImplemented |
501 | KMS not configured or feature unavailable. |
XMinioHealNotImplemented |
400 | Healing not available in this mode. |
XMinioLDAPNotEnabled |
501 | LDAP must be enabled for this operation. |
InvalidToken |
400 | Object Lambda output token mismatch. |
LambdaFunctionStatusError |
400 | Object Lambda function returned an invalid status. |