S3 API 兼容性
本页面记录 MinIO 对象存储支持的 S3 API。 如需查看任意 API 的参考文档,请参阅 Amazon S3 的对应文档。
警告
重要
MinIO 强烈建议使用 S3 兼容 SDK 执行对象存储操作。
对象 API
- CopyObject
- DeleteObject
- DeleteObjects
- **条件 DELETE:**已发布的 Server 20260903 忽略
If-Match。Server 20260916 通过 #145/#178 支持单个DeleteObject的非空If-Match,显式版本比较指定版本。批量DeleteObjects仍忽略<Object><ETag>,没有逐项条件保护。详见范围与限制。
- **条件 DELETE:**已发布的 Server 20260903 忽略
- DeleteObjectTagging
- GetObject
- GetObjectAttributes
- GetObjectTagging
- HeadObject
- ListObjects
- ListObjectsV2
- ListObjectVersions
- PutObject
- PutObjectTagging
- RestoreObject
- SelectObjectContent
写入提交错误
PR #232 面向 20261015 之后的下一次 Server
发布:PUT 或分片上传完成操作在最终提交时丢失暂存的 xl.meta,返回 HTTP 503
SlowDownWrite。原代码可能对 PUT 返回 400 IncompleteBody,对分片完成返回
404 NoSuchKey。真正的客户端上传不完整仍保留原有错误处理。这项分类修复允许 SDK
重试,但不会恢复丢失的暂存数据。见源码与发布边界。
对象锁定
- GetObjectRetention
- PutObjectRetention
- GetObjectLegalHold
- PutObjectLegalHold
- GetObjectLockConfiguration
- PutObjectLockConfiguration
不支持的 API 对象端点
多部分上传
- AbortMultipartUpload
- CompleteMultipartUpload
- CreateMultipartUpload
- ListMultipartUploads
- ListParts
- UploadPart
- UploadPartCopy
与 S3 API 在多部分上传方面的差异
- 已发布的 Server 20260903:
ListMultipartUploads将非空prefix当成精确对象名;空 prefix 使用节点本地易失缓存,不具备完整分页、marker 和 delimiter 语义。 - Server 20260916 以可选 strict 模式增加持久扫描,默认仍保留 legacy 精确键/缓存行为。运行该版本时仍适用其历史升级契约。
- #79 待发布后续修复: 统一使用持久列举,全局处理前缀、目录分组和分页;忽略模式环境变量。确认可读且两个身份字段都不存在的旧上传被省略,不再阻断新上传;删除旧精确键捷径。省略历史记录是明确的 S3 兼容性例外。元数据错误、覆盖不足和资源超限仍报错。预检只作诊断,取消保留原有默认的读取 quorum/尽力删除行为。每页仍需扫描磁盘,迟到创建写入仍可能在取消后恢复上传。详见候选契约、容量与限制。
PutBucketLifecycle不支持AbortIncompleteMultipartUpload生命周期动作。
存储桶 API
- CreateBucket
- DeleteBucket
- DeleteBucketEncryption
- DeleteBucketTagging
- GetBucketEncryption
- GetBucketLocation
- GetBucketTagging
- GetBucketVersioning
- HeadBucket
- ListBuckets
- ListDirectoryBuckets
- PutBucketEncryption
- PutBucketTagging
- PutBucketVersioning
存储桶复制
存储桶生命周期
- GetBucketLifecycle
- GetBucketLifecycleConfiguration
- PutBucketLifecycle
- PutBucketLifecycleConfiguration
- DeleteBucketLifecycle
存储桶通知
- GetBucketNotification
- GetBucketNotificationConfiguration
- PutBucketNotification
- PutBucketNotificationConfiguration
存储桶策略
- GetBucketPolicy
- GetBucketPolicyStatus
- PutBucketPolicy
- DeleteBucketPolicy
- GetBucketCors
- PutBucketCors
- DeleteBucketCors
不支持的 API 存储桶操作
MinIO 针对不支持的存储桶资源的替代方案
- 对于
BucketACL或ObjectACL操作调用,请使用 Policies。 - 自
RELEASE.2026-09-03T13-18-01Z起支持BucketCORS操作。设置了自身 CORS 配置的存储桶只按该配置响应;未设置的存储桶使用服务端全局的MINIO_API_CORS_ALLOW_ORIGIN策略,默认允许所有来源。 - 对于
BucketWebsite操作调用,请使用caddy或nginx。 - 对于
BucketAnalytics、BucketMetrics或BucketLogging操作调用,请使用 存储桶通知。