与AWS S3的兼容性
本文介绍网宿对象存储和AWS S3接口的兼容性和差异。
兼容的S3接口
Service操作
接口 |
接口介绍 |
GetService |
获取用户的所有存储空间 |
Bucket操作
接口 |
接口介绍 |
GetBucket(ListObjectV1) |
列举存储空间下的对象(V1版本) |
HeadBucket |
可用于校验存储空间是否存在 |
PutBucketLifecycle |
用于为存储空间创建生命周期或者替换原有的生命周期规则。 |
GetBucketLifecycle |
用于查询存储空间的生命周期规则。 |
DeleteBucketLifecycle |
用于删除存储空间的生命周期规则。 |
GetBucketV2(ListObjectV2) |
列举存储空间下的对象(V2版本) |
Object操作
接口 |
接口介绍 |
PutObject |
直传方式上传对象 |
PostObject |
表单方式删除对象 |
CopyObject |
复制对象 |
DeleteObject |
删除单个对象 |
DeleteObjects |
批量删除多个对象 |
GetObject |
访问对象 |
分片上传
接口 |
接口介绍 |
InitiateMultipartUpload |
初始化分段上传任务 |
UploadPart |
上传分段 |
CompleteMultipartUpload |
完成分段上传任务,并合成对象 |
AbortMultipartUpload |
取消分段上传任务 |
ListParts |
列举分段上传任务的所有分段信息 |
其它说明
1、兼容S3的鉴权方式【注:需要替换为网宿的AccessKey,SecretKey】。
2、兼容S3的HostPath方式【兼容http://endpoint/{bucket}/key和。http://{bucket}.endpoint/key两种风格】。
3、直传方式的对象Etag与S3相同均为文件MD5值,分段方式上传对象生成的Etag和S3有差异。
4、可兼容常见的s3工具,如s3cmd、awscli、s3browser等。