S3 API Compatibility

This page documents S3 APIs supported by AIStor Object Store. For reference documentation on any given API, see the corresponding documentation for Amazon S3.

Object APIs

Conditional headers

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

  • ListMultipartUploads requires the exact object name as a prefix.

  • The AbortIncompleteMultipartUpload lifecycle action is not supported with PutBucketLifecycle.

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

AIStor alternatives for unsupported bucket API operations

  • For calls to BucketACL or ObjectACL operations, use Policies.
  • For calls to BucketWebsite operations, use caddy or nginx.
  • For calls to BucketAnalytics, BucketMetrics, or BucketLogging operations, use Bucket notifications.