S3 API

基于 AWS 架构的 API,您可以使用任何编程语言发送 HTTP/HTTPS 请求。所有请求参数均通过 HTTP/HTTPS 请求头以 Key: Value 的形式传递。 特别的,FSS仅支持文件相关的API,不支持区域相关配置。 access key id是用戶名,secret access key是用戶密码。

请求方法

bucket、path

<> 是参数内容,是需要用户填写的,填写时,把 <> 去掉。

bucket,是创建的桶名;path,文件/文件夹的路径。

文件上传和客户端管理使用路径风格,网页访问get/head使用虚拟机风格。

兼容公共请求头

参数 说明
Authorization 兼容
Content-Length 兼容
Content-MD5 兼容
Content-Type 兼容
Date 兼容
Host 兼容
x-amz-content-sha256 兼容
x-amz-date 兼容
x-amz-security-token 不兼容

兼容公共响应头

参数 说明
Content-Length 兼容
Content-Type 兼容
ETag 兼容
Date 兼容
x-amz-delete-marker 不支持
x-amz-request-id 兼容
x-amz-id-2 不支持
x-amz-version-id 不支持

上传文件

PUT /<bucket>/<path_to_file>

上传参数

除了所有操作通用的请求头之外,操作的此实现还可以使用以下请求头

参数 必选 类型 说明
Content-Length string 请求内容长度
Content-MD5 string 上传文件的 MD5 值,如果请求中文件太大计算 MD5 不方便,可以为空
Content-Type string 文件类型,默认使用文件扩展名作为文件类型
x-amz-meta-x string 文件元数据,见 Metadata

响应信息

举例

文件分块上传

分片限制

限制项 规格
单个Part大小 1M,除去最后一个分片外,其它均为1M大小的块

初始化

初始化分块上传任务,并得到全局唯一任务 UploadId,后续分块任务相关接口都需要 UploadId 作为请求参数。

请求信息

参数

参数 必选 类型 说明
x-west-multi-length string 上传文件的大小
Content-MD5 string 上传文件的 MD5 值,如果请求中文件太大计算 MD5 不方便,可以为空。使用时请勿在使用请求体上传文件
Content-Type string 文件类型,默认使用文件扩展名作为文件类型
x-amz-meta-x string 文件元数据

响应信息

该请求操作的实现仅使用了所有操作的公共响应头。有关详细信息,请查阅公共响应头

响应内容

参数 类型 说明
InitiateMultipartUploadResult Container 上传文件的大小
Bucket string 空间名称
Key string 资源名称
UploadId string 初始化任务生成的ID。 上传分片 UploadPart API调用时用作请求参数

举例

上传块

分块上传数据,需指定的任务 UploadId

请求信息

参数

参数 必选 类型 说明
ObjectName string 初始化分片任务的对象
PartNumber string 上传的分块编号。介于1和10,000之间的正整数
UploadId string 上传任务ID。可从初始化任务接口响应信息中获取

响应信息

举例

完成上传

请求信息

参数

参数 必选 类型 说明
ObjectName string 资源名称
UploadId string 上传任务ID。可从初始化任务接口响应信息中获取

响应信息

举例

复制文件

bucket 下复制文件。它只能操作文件,不能操作文件夹。

请求信息

PUT /<bucket>/<save_as_file>

参数

参数 必选 类型 说明
x-amz-copy-source string 源文件地址,格式 /<bucket>/<source-to-file>

响应信息

举例

下载文件

用于获取一个资源的元数据及对象数据,可以获取全部数据或者使用 Range 指定获取部分数据

请求信息

GET /<bucket>/<path_to_file>

参数

参数 必选 类型 说明
Range string Range: byte=0-499表示第0-499字节范围的内容。Range: byte=-500表示最后500字节的内容。Range: byte=500-表示从第500字节开始到文件结束部分的内容。Range: byte=0-表示从第一个字节到最后一个字节,即完整的文件内容。

响应信息

删除文件

请求信息

DELETE /<bucket>/<path_to_file>

响应信息

获取文件信息

请求信息

HEAD /<bucket>/<path_to_file>

响应信息

响应头 说明
Last-Modified 最后修改时间
ETag 资源内容的哈希值,用于表示对象内容的变化,而不是元数据的变化。ETag 的值并不总是对象数据的 MD5 值,具体取决于请求的方式
x-amz-meta-x 文件元数据

获取目录文件列表

请求信息

GET /<bucket>/<path_to_folder>/?list-type=2

分页参数

如果目录中文件数量过多,为了更友好的获取文件信息,可以分页获取:

参数

参数 必选 类型 说明
list-type string API 的第二版本要求使用该参数,并且值必须设置为 2
max-keys string 返回资源的最大数量。默认值为 1000
prefix string 指定前缀,只有资源名匹配该前缀的资源会被列出。默认值为空字符串
delimiter string 指定目录分隔符,列出所有公共前缀(模拟列出目录效果)。默认值为空字符串

该请求操作的实现仅使用了所有操作的公共请求头。有关详细信息,请查阅公共请求头

响应信息

该请求操作的实现仅使用了所有操作的公共响应头。有关详细信息,请查阅公共响应头

响应内容

参数 类型 说明
Delimiter string 指定目录分隔符
IsTruncated Boolean 返表示是否还有更多可返回的资源。当所有结果都已返回时,该参数设为false;当还有更多资源可返回时,该参数设为true。如果结果数量超过了MaxKeys指定的数量,可能不会返回所有结果
MaxKeys string 返回的资源的最大数量
Prefix string 以特定前缀开头的资源
ContinuationToken string 如果请求中带有 Continuation-token,它将包含在响应中
NextContinuationToken string 返如果响应被截断,S3 将返回此参数及其对应的续传令牌。您可以将该令牌作为 continuation-token 在下一个请求中指定,检索下一组资源
CommonPrefixes string 将合并为公共前缀的资源计为单个返回,并列出充当子目录的资源
ETag string 对象的 MD5 哈希值。ETag 仅反映对象内容的更改,而不包括其元数据的更改
Key string 资源名称
LastModified DATE 对象的最后修改日期和时间
Size string 对象的大小,以字节为单位

举例