Supported operations

Every S3 operation we exercise, and what actually happened the last time we ran it.

This page is generated. A test suite drives every operation an SDK can express against a live deployment and writes down what came back; a script turns that run into this table, and the build fails if the two disagree. Nobody types these verdicts in, which is the only reason to believe them.

23works3works, with limits51not offered

Run b2794eb53495, 2026-08-15 · boto3 1.43.57

How to read it

  • Works — every check passed. Use it as you would on S3.
  • Works, with limits — the operation is usable, but some variations are not. Expand the row to see exactly which. Most of the common operations are here, and the limits are usually a header or a mode rather than the operation itself.
  • Not offered — deliberately not implemented. Bucket policies, S3 lifecycle-configuration APIs and website hosting are the big ones; see limitations for what to use instead. Simple retained-version and unfinished-upload cleanup is available in bucket settings.
  • Does not work — it should work and it does not. These are bugs, and we would rather you saw them here than found them in production.

Roughly a third of the S3 API surface is not on this list at all: operations that depend on IAM, KMS, Lambda, Athena or S3 Express cannot be implemented by any third-party endpoint, so no one exercises them.

The matrix

Bucket-level operations

CreateBucketNot offered1 check, none passed
DeleteBucketNot offered1 check, none passed
DeleteBucketCorsNot offered1 check, none passed
GetBucketAclNot offered1 check, none passed
GetBucketCorsNot offered1 check, none passed
GetBucketEncryptionNot offered1 check, none passed
GetBucketLocationNot offered1 check, none passed
GetBucketVersioningNot offered1 check, none passed
GetObjectLockConfigurationNot offered1 check, none passed
PutBucketAclNot offered1 check, none passed
PutBucketCorsNot offered1 check, none passed
PutBucketEncryptionNot offered1 check, none passed
PutBucketLifecycleConfigurationNot offered1 check, none passed
PutBucketNotificationConfigurationNot offered1 check, none passed
PutBucketPolicyNot offered1 check, none passed
PutBucketReplicationNot offered1 check, none passed
PutBucketTaggingNot offered1 check, none passed
PutBucketVersioningNot offered1 check, none passed
PutBucketWebsiteNot offered1 check, none passed

Copy

CopyObjectWorks6 checks passed

Listing

ListBucketsWorks, with limits1 of 2 checks passed
ListObjectsWorks1 check passed
ListObjectVersionsWorks1 check passed

Long tail

DeleteBucketEncryptionNot offered1 check, none passed
DeleteBucketLifecycleNot offered1 check, none passed
DeleteBucketPolicyNot offered1 check, none passed
DeleteBucketReplicationNot offered1 check, none passed
DeleteBucketTaggingNot offered1 check, none passed
DeleteBucketWebsiteNot offered1 check, none passed
DeleteObjectTaggingWorks1 check passed
DeletePublicAccessBlockNot offered1 check, none passed
GetBucketAccelerateConfigurationNot offered1 check, none passed
GetBucketLifecycleNot offered1 check, none passed
GetBucketLifecycleConfigurationNot offered1 check, none passed
GetBucketLoggingNot offered1 check, none passed
GetBucketNotificationNot offered1 check, none passed
GetBucketNotificationConfigurationNot offered1 check, none passed
GetBucketPolicyNot offered1 check, none passed
GetBucketPolicyStatusNot offered1 check, none passed
GetBucketReplicationNot offered1 check, none passed
GetBucketRequestPaymentNot offered1 check, none passed
GetBucketTaggingNot offered1 check, none passed
GetBucketWebsiteNot offered1 check, none passed
GetObjectAttributesWorks1 check passed
GetObjectTorrentWorks1 check passed
GetPublicAccessBlockNot offered1 check, none passed
ListBucketAnalyticsConfigurationsNot offered1 check, none passed
PutBucketLifecycleNot offered1 check, none passed
PutBucketNotificationNot offered1 check, none passed
PutObjectLegalHoldNot offered1 check, none passed
PutObjectLockConfigurationNot offered1 check, none passed
PutObjectRetentionNot offered1 check, none passed
PutPublicAccessBlockNot offered1 check, none passed
RenameObjectWorks1 check passed
RestoreObjectNot offered1 check, none passed
SelectObjectContentNot offered1 check, none passed
UpdateObjectEncryptionNot offered1 check, none passed

Multipart

AbortMultipartUploadWorks1 check passed
CompleteMultipartUploadWorks4 checks passed
CreateMultipartUploadWorks1 check passed
ListMultipartUploadsWorks1 check passed
ListPartsWorks1 check passed
UploadPartCopyWorks1 check passed

Object CRUD

DeleteObjectWorks3 checks passed
DeleteObjectsWorks2 checks passed
HeadObjectWorks3 checks passed

Payload signing & checksums

GetObjectWorks, with limits21 of 22 checks passed
PutObjectWorks, with limits33 of 41 checks passed
UploadPartWorks3 checks passed

Preflight & auth

HeadBucketWorks3 checks passed
ListObjectsV2Works8 checks passed

Versioning, tagging, ACL, lock

GetObjectAclWorks1 check passed
GetObjectLegalHoldNot offered1 check, none passed
GetObjectRetentionNot offered1 check, none passed
GetObjectTaggingWorks1 check passed
PutObjectAclWorks1 check passed
PutObjectTaggingWorks1 check passed