S3 API 兼容性
SILO 20261026 契约: 本页继承 S3 API 目录,当前目标为 20261026 正式版。普通 LIST、Object Lock和分片列表的限定与错误行为以这些记录为准。校验和消息可能改变,错误码契约见校验和说明。
本页面记录 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 包含于 Server 20261018 正式版: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 精确键/缓存行为。运行该版本时仍适用其历史升级契约。
- Server 20261018: 撤回默认持久扫描,公开列表恢复无 prefix 的节点缓存和非空 prefix 的精确对象查找;重启漏项、真正前缀筛选及缓存分页缺陷仍然存在。模式开关被忽略并告警,旧共享配置键被容忍;已有 strict 用户会失去可选持久列表和严格取消。诊断扫描保留资源限制但不控制业务入口。身份字段、安全校验、默认尽力取消和后台清理修复保留。见决策、容量与限制。
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操作调用,请使用 存储桶通知。