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
| CreateBucket | Not offered | 1 check, none passed |
| DeleteBucket | Not offered | 1 check, none passed |
| DeleteBucketCors | Not offered | 1 check, none passed |
| GetBucketAcl | Not offered | 1 check, none passed |
| GetBucketCors | Not offered | 1 check, none passed |
| GetBucketEncryption | Not offered | 1 check, none passed |
| GetBucketLocation | Not offered | 1 check, none passed |
| GetBucketVersioning | Not offered | 1 check, none passed |
| GetObjectLockConfiguration | Not offered | 1 check, none passed |
| PutBucketAcl | Not offered | 1 check, none passed |
| PutBucketCors | Not offered | 1 check, none passed |
| PutBucketEncryption | Not offered | 1 check, none passed |
| PutBucketLifecycleConfiguration | Not offered | 1 check, none passed |
| PutBucketNotificationConfiguration | Not offered | 1 check, none passed |
| PutBucketPolicy | Not offered | 1 check, none passed |
| PutBucketReplication | Not offered | 1 check, none passed |
| PutBucketTagging | Not offered | 1 check, none passed |
| PutBucketVersioning | Not offered | 1 check, none passed |
| PutBucketWebsite | Not offered | 1 check, none passed |
Copy
| CopyObject | Works | 6 checks passed |
Listing
| ListBuckets | Works, with limits | 1 of 2 checks passed |
| ListObjects | Works | 1 check passed |
| ListObjectVersions | Works | 1 check passed |
Long tail
| DeleteBucketEncryption | Not offered | 1 check, none passed |
| DeleteBucketLifecycle | Not offered | 1 check, none passed |
| DeleteBucketPolicy | Not offered | 1 check, none passed |
| DeleteBucketReplication | Not offered | 1 check, none passed |
| DeleteBucketTagging | Not offered | 1 check, none passed |
| DeleteBucketWebsite | Not offered | 1 check, none passed |
| DeleteObjectTagging | Works | 1 check passed |
| DeletePublicAccessBlock | Not offered | 1 check, none passed |
| GetBucketAccelerateConfiguration | Not offered | 1 check, none passed |
| GetBucketLifecycle | Not offered | 1 check, none passed |
| GetBucketLifecycleConfiguration | Not offered | 1 check, none passed |
| GetBucketLogging | Not offered | 1 check, none passed |
| GetBucketNotification | Not offered | 1 check, none passed |
| GetBucketNotificationConfiguration | Not offered | 1 check, none passed |
| GetBucketPolicy | Not offered | 1 check, none passed |
| GetBucketPolicyStatus | Not offered | 1 check, none passed |
| GetBucketReplication | Not offered | 1 check, none passed |
| GetBucketRequestPayment | Not offered | 1 check, none passed |
| GetBucketTagging | Not offered | 1 check, none passed |
| GetBucketWebsite | Not offered | 1 check, none passed |
| GetObjectAttributes | Works | 1 check passed |
| GetObjectTorrent | Works | 1 check passed |
| GetPublicAccessBlock | Not offered | 1 check, none passed |
| ListBucketAnalyticsConfigurations | Not offered | 1 check, none passed |
| PutBucketLifecycle | Not offered | 1 check, none passed |
| PutBucketNotification | Not offered | 1 check, none passed |
| PutObjectLegalHold | Not offered | 1 check, none passed |
| PutObjectLockConfiguration | Not offered | 1 check, none passed |
| PutObjectRetention | Not offered | 1 check, none passed |
| PutPublicAccessBlock | Not offered | 1 check, none passed |
| RenameObject | Works | 1 check passed |
| RestoreObject | Not offered | 1 check, none passed |
| SelectObjectContent | Not offered | 1 check, none passed |
| UpdateObjectEncryption | Not offered | 1 check, none passed |
Multipart
| AbortMultipartUpload | Works | 1 check passed |
| CompleteMultipartUpload | Works | 4 checks passed |
| CreateMultipartUpload | Works | 1 check passed |
| ListMultipartUploads | Works | 1 check passed |
| ListParts | Works | 1 check passed |
| UploadPartCopy | Works | 1 check passed |
Object CRUD
| DeleteObject | Works | 3 checks passed |
| DeleteObjects | Works | 2 checks passed |
| HeadObject | Works | 3 checks passed |
Payload signing & checksums
| GetObject | Works, with limits | 21 of 22 checks passed |
| PutObject | Works, with limits | 33 of 41 checks passed |
| UploadPart | Works | 3 checks passed |
Preflight & auth
| HeadBucket | Works | 3 checks passed |
| ListObjectsV2 | Works | 8 checks passed |
Versioning, tagging, ACL, lock
| GetObjectAcl | Works | 1 check passed |
| GetObjectLegalHold | Not offered | 1 check, none passed |
| GetObjectRetention | Not offered | 1 check, none passed |
| GetObjectTagging | Works | 1 check passed |
| PutObjectAcl | Works | 1 check passed |
| PutObjectTagging | Works | 1 check passed |